OS X का say
कमांड कुछ कार्यों के लिए उपयोगी है (जैसे कि Skype का 'संपर्क आने पर मुझे सूचित करें), लेकिन यह कुछ नामों का गलत उच्चारण कर रहा है। क्या say
एक शब्द को अलग तरीके से उच्चारण करना सिखाना है?
उदाहरण के लिए, कोशिश करें:
say "Hi, Joel Spolsky"
The ओल ’। पुरानी’ की बजाय 'बॉल ’की तरह लगता है। मैं एक अपवाद जोड़ना चाहूँगा जो कहता है कि "इस तरह स्पोलस्की का उच्चारण करें", बजाय नए भाषाई नियमों को पढ़ाने के। मुझे यकीन है कि एक तरीका है क्योंकि यह "iphone" का उच्चारण कर सकता है जैसा कि Apple चाहता है।
अद्यतन - कुछ शोध के बाद, यहाँ मैंने जो सीखा है:
- पाठ-से-भाषण को पाठ को स्वरों में बदलने के बीच विभाजित किया जाता है, और फिर ध्वनि के उपयोग से ध्वनि को ऑडियो में बदल दिया जाता है। आवाज बदलने से स्वरों पर प्रभाव नहीं पड़ता है।
- वाक् संश्लेषण प्रबंधक के लिए कुछ कार्य हैं स्वनिम के लिए पाठ मोड़ , और के लिए एक विधि एक भाषण शब्दकोश दर्ज की है कि नए पाठ स्वनिम नक्शे जोड़ देगा। हालाँकि, Apple का भाषण शब्दकोश एक द्विआधारी रूप में होना चाहिए - मुझे कोई प्लिस्ट XML नहीं मिला।
- का उपयोग
dtrace
करते हुए चल रहाsay
है, मैं /System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources में खोला कुछ रोचक फ़ाइल नहीं मिली। यह शायद भाषण शब्दकोश है, लेकिन वे सभी द्विआधारी हैं, होमोफोन के अलावा, जो एक्सएमएल है। होमोफ़ोन में प्रविष्टियों को जोड़ने से कुछ नहीं होता है - इसका उपयोग संभवतः भाषण से पाठ में किया जाता है। वे Apple द्वारा हस्ताक्षरित कोड भी हैं - उन्हें बदलने से कुछ कार्यक्रमों को काम करने से रोका जा सकता है।- PrefixDictionary
- CartNames
- CartLite
- SymbolDictionary
- homophones
- कर रहे हैं तरीके आवेदन इंटरफ़ेस तत्वों के लिए पाठ रूप इसलिए योग्यता काम करता है, एक डेवलपर मुक्त करने के लिए हो जाता है जो की एक बहुत कुछ जोड़ने के लिए है, लेकिन देखते हैं मुश्किल बिट्स । यहाँ मानक आवश्यकतानुसार ध्वन्यात्मक वर्तनी का उपयोग करता प्रतीत होता है।
मेरे अनुमान हैं:
say
भाषण संश्लेषण प्रबंधक के शीर्ष पर कोड की एक हल्की परत होती है। वैकल्पिक फ़ोनम मैपिंग के लिए भाषण डिक्शनरी के लिए रास्ता लेने के लिए ऐप्पल देवों के लिए कमांड लाइन विकल्प जोड़ना आसान होगा, लेकिन उन्होंने ऐसा नहीं किया। बेहतर लिखने के लिए यह एक उपयोगी ओपन-सोर्स प्रोजेक्ट हो सकता हैsay
।- Skype शायद स्पीच सिंथेसिस मैनेजर का सीधा उपयोग करता है, मेरे दोस्त के नामों के उच्चारण के तरीके को बदलने के लिए कोई हुक नहीं छोड़ता है, इसके अलावा उन्हें ध्वन्यात्मक रूप से वर्तनी के अलावा, जो मूर्खतापूर्ण है।
- कमांड लाइन संस्करण बनाने का सबसे आसान तरीका
say
है कि कैसे JRobert ने सुझाव दिया।
यहाँ मेरा त्वरित कार्यान्वयन है, डौग हैरिस के वर्तनी सुझाव का उपयोग करते हुए:
#!/bin/sh
echo $@ | tr '[A-Z]' '[a-z]' |
sed "s/spolsky/spowlsky/g" |
/usr/bin/say
अंत में, कुछ मजेदार कमांड लाइन सामान:
# Apple is weird
sqlite3 /System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources/Tuples .dump
# Get too much information about what files are being opened
sudo dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
# Just fun
say -v bad "Joel Spolsky Spolsky Spolsky Spolsky Spolsky, Joel Spolsky Spolsky Spolsky Spolsky Spolsky"
echo "scale=1000; 4*a(1)" | bc -l | say
say -v alex 'Spolsky' ; say -v vicki 'Spolsky'; say -v bad 'Spolsky Spolsky Spolsky Spolsky Spolsky Spols'
:। आवाज़ों की सूची सिस्टम वरीयताएँ -> भाषण -> पाठ से भाषण में पाई जा सकती है। समस्या ध्वनि अनुवाद पर है, ध्वनि संश्लेषण पर नहीं। यदि आप लाइब्रेरी को सीधे कॉल कर रहे हैं, तो आप कस्टम फोनमेस सेट कर सकते हैं: developer.apple.com/mac/library/documentation/Carbon/Reference/… Apple डिस्क को एक
say
है-v
?