OS X``` คำสั่งสำหรับ Windows


22

sayคำสั่งอาจจะเป็นคุณลักษณะที่น่าสนใจที่สุด OS X ขั้ว - มันต้องใช้ข้อความเป็น input และพูดผ่านลำโพงของคอมพิวเตอร์ มีเครื่องมือบรรทัดคำสั่งใด ๆ ที่เทียบเท่าบน Windows ไม่ว่าจะเป็นในตัวหรือผ่านทางโปรแกรมบุคคลที่สาม


7
เพียงให้แน่ใจว่าระดับเสียงของลำโพงของคุณจะถูกเปิดขึ้น
Daniel Beck

2
สิ่งใดทำให้ฉันคิดว่าบางทีฉันควรจะเขียนแอปพลิเคชันการเปลี่ยนแปลงปริมาณบรรทัดคำสั่งในกรณีที่สถานการณ์จะเกิดขึ้น
nhinkle

คำตอบ:


5

PTTSเป็นโปรแกรมบรรทัดคำสั่ง Microsoft Windows ที่ใช้ง่ายมากในการแปลงข้อความเป็นคำพูด หากใช้ Microsoft Text เพื่อ Speech Engine และ Microsoft Speech SDK Text to Speech Engine ติดตั้งมากับ Windows XP ด้วยเสียงเดียวที่มีคุณภาพค่อนข้างต่ำ โปรแกรมการติดตั้ง Jampal รวมถึงเสียงที่ดีกว่าสองเสียง (อ้างอิงจากเว็บไซต์)

หนึ่งสามารถใช้งานได้โดยเพียงแค่ป้อนข้อความลงในโปรแกรมโดยการเปลี่ยนเส้นทางหรือโดยการไพพ์ในข้อความ:

ptts < file.txt
echo Hello there|ptts

@bubu ดูเหมือนว่าซอฟต์แวร์นี้มีความสามารถในการพูดจากไฟล์เท่านั้นเว้นแต่ฉันจะเข้าใจผิดเกี่ยวกับเอกสาร คุณรู้หรือไม่ว่ามีวิธีใดบ้างที่จะยอมรับข้อความโดยตรงจากบรรทัดคำสั่งโดยไม่จำเป็นต้องสร้างไฟล์ตัวกลาง?
nhinkle

2
Nvm คิดออก คุณต้องไปป์กับโปรแกรม echo Hello|ptts.exeเช่น ฉันต้องการวิธีที่จะให้ข้อความเป็นอาร์กิวเมนต์ของคำสั่ง แต่สิ่งนี้จะเพียงพอหากไม่มีวิธีการทำเช่นนั้น
nhinkle

@nhinkle ใช่ที่มันอ่านจาก stdin หนึ่งวิธีคือการท่อผ่านมัน
bubu

3

ฉันได้สร้าง Batch Script อย่างง่ายสำหรับการทำสิ่งนี้ นี่คือซอร์สโค้ด

@echo off
echo Dim Speak >> %HOMEPATH%\speak.vbs
echo Set Speak=CreateObject("sapi.spvoice") >> %HOMEPATH%\speak.vbs
echo Speak.Speak "%*">> %HOMEPATH%\speak.vbs
%HOMEPATH%\speak.vbs
del %HOMEPATH%\speak.vbs

บันทึกสคริปต์นี้ในไฟล์ชื่อ "speak.bat" และย้ายไปยังไดเรกทอรีที่อ้างอิงโดยตัวแปร PATH ของคุณ

โปรแกรมนี้สร้าง vbs อย่างง่าย ๆ ด้วยอินพุตของคุณจากนั้นพูดด้วยเสียงของระบบ ในตอนท้ายของการดำเนินการสคริปต์จะถูกลบออกเพื่อให้พื้นที่สำหรับการดำเนินการอื่น


คุณช่วยแก้ไขโพสต์ของคุณเพื่ออธิบายการทำงานของมันและวิธีใช้มันได้หรือไม่? นอกจากนี้การย้ายไฟล์มีวัตถุประสงค์อะไรสำหรับการแก้ปัญหานี้?
Cfinley

@Cfinley: แก้ไขถูกโพสต์
Alessandro Mascolo

2

คำถามนี้ถูกถามใน Stack Overflow ผมชอบคำตอบกับสคริปต์ VBS

นอกจากนี้ยังespeakมีให้สำหรับ Windows และ Linux และได้รับการจัดพอร์ตไปยัง OS X ฉันไม่เชื่อว่ามันใช้เอ็นจิ้น Windows TTS ในตัว


1

พวกเขามีไลบรารี่นี้ใน SDK ซึ่งคุณสามารถสร้างยูทิลิตี้ขั้นสูงขึ้นได้ด้วยความพยายามส่วนตัว

https://www.microsoft.com/en-us/download/details.aspx?id=27224

แม้ว่านี่อาจเป็นวิธีที่สะดวกที่สุดเนื่องจากมันถูกสร้างขึ้นในระบบและสามารถเข้าถึงได้ผ่าน PowerShell

เรียกใช้ฟังก์ชันจากเนมสเปซ ( https://msdn.microsoft.com/en-us/library/gg145021(v=vs.110).aspx )

Add-Type -AssemblyName System.Speech

ยกตัวอย่างวัตถุ

 $synth = New-Object -TypeName
 System.Speech.Synthesis.SpeechSynthesizer

เรียกใช้ฟังก์ชันและป้อนคำของคุณตามที่เป็นอาร์กิวเมนต์

 $synth.Speak('hey man')
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.