2009-05-07 12 views
9

मैं एक प्रोग्राम है जो टीसीपी/आईपी से बिट्स का एक ऑडियो (मोनो) स्ट्रीम प्राप्त करता है। मैं सोच रहा हूं कि मैक ओएस एक्स में भाषण (भाषण-मान्यता) एपीआई मेरे लिए भाषण-से-पाठ परिवर्तन करने में सक्षम होगा या नहीं।टेक्स्ट एपीआई के लिए मैक ओएस एक्स भाषण। कैसे?

(मैं .wav पहले में ऑडियो बचत मन और इसे पढ़ने के रूप में फ्लाई पर परिणत करने के लिए विरोध नहीं करते हैं)।

मैंने आधिकारिक दस्तावेज़ ऑनलाइन पढ़ा है, यह थोड़ा उलझन में है। और मुझे इस विषय के बारे में कोई अच्छा उदाहरण नहीं मिला।

इसके अलावा, क्या मुझे इसे कोको/कार्बन/जावा या ऑब्जेक्टिव-सी में करना चाहिए?

क्या कोई कृपया कुछ प्रकाश डाला जा सकता है?

धन्यवाद।

उत्तर

6

उस/डेवलपर/उदाहरण/भाषण/मान्यता के तहत कॉपी हो जब आप XCode स्थापित उदाहरण के एक नंबर है। बोली पहचान के लिए

कोको वर्ग NSSpeechRecognizer है। मैंने इसका उपयोग नहीं किया है, लेकिन जहां तक ​​मुझे भाषण मान्यता पता है, आपको इंजन को कई विकल्पों में से चुनने में मदद करने के लिए व्याकरण बनाने की आवश्यकता है, बल्कि आपको फ्री-फॉर्म इनपुट पास करने की इजाजत मिलती है। यह सब ऊपर उल्लिखित उदाहरणों में समझाया गया है।

1

यहाँ एक good O'Reilly article आप आरंभ करने के लिए है।

+0

धन्यवाद चार्ली, आप कुछ कोड उदाहरण है उपयोग कर सकते हैं? –

6

यह शायद कुछ देर हो चुकी है, लेकिन मैं वैसे भी चिल्लाऊंगा।

ओएस एक्स (कार्बन और कोको दोनों चीजों पर) में भाषण मान्यता सुविधाओं भाषण कमांड मान्यता के लिए हैं, जिसका अर्थ है कि वे शब्दों (या वाक्यांश, आदेश) को पहचानेंगे जो भाषण प्रणाली भाषा में लोड किए गए हैं आदर्श। मैंने छोटे शब्दकोशों के साथ कुछ सामान किया है और यह बहुत अच्छी तरह से काम करता है, लेकिन यदि आप मनमानी भाषण को पहचानना चाहते हैं तो चीजें बालों को बदल सकती हैं। बाकी

कुछ को ध्यान में रखना है कि कार्यक्षमता है कि ओएस एक्स में भाषण एपीआई एक नंबर उपलब्ध कराएं को एक नहीं है है। कार्बन सामान कार्यक्षमता (डॉक्स इस में से कुछ उल्लेख) NSSpeechRecognizer के लिए यह नहीं किया है प्रदान करता है।

मैं कोको के बारे में पता नहीं है, लेकिन कार्बन वाक् पहचान प्रबंधक आप एक माइक्रोफोन के अलावा अन्य आदानों तो एक ध्वनि धारा ठीक काम करेगा निर्दिष्ट करने के लिए अनुमति देता है।

1

आप या तो ApplicationServices के SpeechSynthesis (10.0+)

CFStringRef cfstr = CFStringCreateWithCString(NULL,"Hello World!", kCFStringEncodingMacRoman); 
Str255 pstr;  
CFStringGetPascalString(cfstr, pstr, 255, kCFStringEncodingMacRoman); 
SpeakString(pstr); 

या AppKit के NSSpeechSynthesizer (10.3+)

NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] initWithVoice:@"com.apple.speech.synthesis.voice.Alex"]; 
[synth startSpeakingString:@"Hello world!"]; 
+0

कि भाषण synthesizing (पाठ से वाक्), भाषण पहचान नहीं (वाक् से पाठ) के लिए है। –

+0

ऐसा लगता है कि मेरा मतलब यह जवाब एक अलग प्रश्न के लिए था .. और अब मुझे वह नहीं मिल रहा है – valexa