OS X `say` कमांड विंडोज के लिए


23

sayआदेश शायद ओएस एक्स टर्मिनल के सबसे सम्मोहक सुविधा है - यह इनपुट के रूप में पाठ लेता है और कंप्यूटर के स्पीकर के माध्यम से बात करते हैं। क्या विंडोज पर कोई समतुल्य कमांड-लाइन टूल है, या तो अंतर्निहित या तीसरे पक्ष के कार्यक्रम के माध्यम से?



2
जो मुझे सोच रहा है, शायद मुझे एक कमांड-लाइन वॉल्यूम बदलने वाला एप्लिकेशन लिखना चाहिए, अगर स्थिति कभी भी उत्पन्न होनी चाहिए।
nhinkle

जवाबों:


5

पाठ को भाषण में बदलने के लिए PTTS एक बहुत ही सरल Microsoft Windows कमांड लाइन प्रोग्राम है। यदि Microsoft टेक्स्ट टू स्पीच इंजन और Microsoft भाषण SDK का उपयोग करता है। कुछ खराब गुणवत्ता की एक आवाज के साथ टेक्स्ट इंजन टू स्पीच इंजन विंडोज एक्सपी के साथ स्थापित किया गया है। जम्पल इंस्टॉलेशन प्रोग्राम में दो बेहतर साउंडिंग आवाजें शामिल हैं। (वेबसाइट से उद्धृत)

कार्यक्रम में केवल पुनर्निर्देशन द्वारा या पाठ में पाइपिंग करके आप इसे उपयोग कर सकते हैं:

ptts < file.txt
echo Hello there|ptts

@ बबू, ऐसा लग रहा है कि यह सॉफ़्टवेयर केवल एक फ़ाइल से बोलने में सक्षम है, जब तक कि मैं दस्तावेज़ को गलत नहीं समझ रहा हूं। क्या आपको पता है कि इसके लिए कोई भी तरीका है जो बिना मध्यस्थ फाइल बनाने की आवश्यकता के बिना कमांड लाइन से सीधे पाठ को स्वीकार करने के लिए है?
nhinkle

2
Nvm, यह समझ से बाहर। आपको इसे प्रोग्राम में पाइप करना होगा। जैसे echo Hello|ptts.exe। मैं पाठ को कमांड का एक तर्क होने का एक तरीका पसंद करूंगा, लेकिन अगर ऐसा करने का कोई तरीका नहीं है, तो यह पर्याप्त होगा।
nhinkle

@ होइंकल के रूप में यह स्टड से पढ़ता है एक तरह से इसके माध्यम से पाइप करना है
बूबू

3

मैंने ऐसा करने के लिए एक सरल बैच स्क्रिप्ट बनाई है। यहाँ स्रोत कोड है

@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: पोस्ट संपादित
एलेसेंड्रो मस्कलो

2

स्टैक ओवरफ्लो पर यह सवाल पूछा गया था। मुझे VBS स्क्रिप्ट के साथ उत्तर पसंद है ।

इसके अलावा, espeakविंडोज और लिनक्स के लिए उपलब्ध है और इसे ओएस एक्स में पोर्ट किया गया है। मुझे विश्वास नहीं होता कि यह बिल्ट-इन विंडोज टीटीएस इंजन का उपयोग करता है।


1

उनके पास एसडीके में यह पुस्तकालय है, जहां आप शायद कुछ व्यक्तिगत प्रयासों के साथ अधिक उन्नत उपयोगिता बना सकते हैं।

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

यद्यपि यह संभवतः सबसे सुविधाजनक तरीका है क्योंकि यह मूल रूप से सिस्टम में बनाया गया है, और इसे पॉवरशेल के माध्यम से सुलभ है।

नेमस्पेस ( 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')

0

मैं पुराने टूल को काम करने की कोशिश कर थक गया, इसलिए मैंने बनाया wsay

यह काम करता है say, आप विभिन्न आवाज़ों का चयन कर सकते हैं और आप आसानी से एक तरंग फ़ाइल में आउटपुट कर सकते हैं।

https://github.com/p-groarke/wsay/releases

चियर्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.