मैं कैसे बदल सकता हूं कि ओएस एक्स के 'कहो' कमांड एक शब्द का उच्चारण कैसे करता है।


14

OS X का sayकमांड कुछ कार्यों के लिए उपयोगी है (जैसे कि Skype का 'संपर्क आने पर मुझे सूचित करें), लेकिन यह कुछ नामों का गलत उच्चारण कर रहा है। क्या sayएक शब्द को अलग तरीके से उच्चारण करना सिखाना है?

उदाहरण के लिए, कोशिश करें:

say "Hi, Joel Spolsky"

The ओल ’। पुरानी’ की बजाय 'बॉल ’की तरह लगता है। मैं एक अपवाद जोड़ना चाहूँगा जो कहता है कि "इस तरह स्पोलस्की का उच्चारण करें", बजाय नए भाषाई नियमों को पढ़ाने के। मुझे यकीन है कि एक तरीका है क्योंकि यह "iphone" का उच्चारण कर सकता है जैसा कि Apple चाहता है।


अद्यतन - कुछ शोध के बाद, यहाँ मैंने जो सीखा है:

  1. पाठ-से-भाषण को पाठ को स्वरों में बदलने के बीच विभाजित किया जाता है, और फिर ध्वनि के उपयोग से ध्वनि को ऑडियो में बदल दिया जाता है। आवाज बदलने से स्वरों पर प्रभाव नहीं पड़ता है।
  2. वाक् संश्लेषण प्रबंधक के लिए कुछ कार्य हैं स्वनिम के लिए पाठ मोड़ , और के लिए एक विधि एक भाषण शब्दकोश दर्ज की है कि नए पाठ स्वनिम नक्शे जोड़ देगा। हालाँकि, Apple का भाषण शब्दकोश एक द्विआधारी रूप में होना चाहिए - मुझे कोई प्लिस्ट XML नहीं मिला।
  3. का उपयोग dtraceकरते हुए चल रहा sayहै, मैं /System/Library/PrivateFrameworks/SpeechDictionary.framework/Resources में खोला कुछ रोचक फ़ाइल नहीं मिली। यह शायद भाषण शब्दकोश है, लेकिन वे सभी द्विआधारी हैं, होमोफोन के अलावा, जो एक्सएमएल है। होमोफ़ोन में प्रविष्टियों को जोड़ने से कुछ नहीं होता है - इसका उपयोग संभवतः भाषण से पाठ में किया जाता है। वे Apple द्वारा हस्ताक्षरित कोड भी हैं - उन्हें बदलने से कुछ कार्यक्रमों को काम करने से रोका जा सकता है।
    • PrefixDictionary
    • CartNames
    • CartLite
    • SymbolDictionary
    • homophones
  4. कर रहे हैं तरीके आवेदन इंटरफ़ेस तत्वों के लिए पाठ रूप इसलिए योग्यता काम करता है, एक डेवलपर मुक्त करने के लिए हो जाता है जो की एक बहुत कुछ जोड़ने के लिए है, लेकिन देखते हैं मुश्किल बिट्स । यहाँ मानक आवश्यकतानुसार ध्वन्यात्मक वर्तनी का उपयोग करता प्रतीत होता है।

मेरे अनुमान हैं:

  1. sayभाषण संश्लेषण प्रबंधक के शीर्ष पर कोड की एक हल्की परत होती है। वैकल्पिक फ़ोनम मैपिंग के लिए भाषण डिक्शनरी के लिए रास्ता लेने के लिए ऐप्पल देवों के लिए कमांड लाइन विकल्प जोड़ना आसान होगा, लेकिन उन्होंने ऐसा नहीं किया। बेहतर लिखने के लिए यह एक उपयोगी ओपन-सोर्स प्रोजेक्ट हो सकता है say
  2. Skype शायद स्पीच सिंथेसिस मैनेजर का सीधा उपयोग करता है, मेरे दोस्त के नामों के उच्चारण के तरीके को बदलने के लिए कोई हुक नहीं छोड़ता है, इसके अलावा उन्हें ध्वन्यात्मक रूप से वर्तनी के अलावा, जो मूर्खतापूर्ण है।
  3. कमांड लाइन संस्करण बनाने का सबसे आसान तरीका 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?
स्टडीर

2
उच्चारण पर कोई प्रभाव नहीं 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 डिस्क को एक
.plist

जवाबों:


8

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

उदाहरण के लिए:

[[inpt PHON]] hAAIH।

अधिक जानने के लिए इस लिंक की जाँच करें: http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/SpeechSynthesisProgrammingGuide/Phonemes/hhonemes.html#//apple_ref/doc/uid/TP40004365-CH9/9


1
फोनेटिक सिंटैक्स उत्पन्न करने के लिए आप मेरे बाद रिपीट का उपयोग कर सकते हैं। यह developer.apple.com/downloads से उपलब्ध है
लरी

मेरे बाद दोहराएँ Xcode के लिए सहायक उपकरण का हिस्सा है ।
डैनियल बेक

1
इसने मेरे लिए काम किया: 'हाय, जोएल [[inpt PHON]] स्पॉल स्काई। " मुझे आश्चर्य है कि अगर पता पुस्तिका में यह प्लस ध्वन्यात्मक क्षेत्र चाल करेंगे: macdailynews.com/2011/10/20/…
jwhitlock

आप इन फोनेम्स को कहां से इनपुट करेंगे?
बुरहान अली

6
  • शब्द जोड़े की एक सूची बनाएं [स्पोलस्की स्पॉल्स्की; जोएल जोल; ...]।
  • अपनी पसंदीदा स्क्रिप्टिंग भाषा में एक स्क्रिप्ट बनाएं, जो शब्द-युग्म सूची के अनुसार अपनी पैरामीटर सूची में शब्दों को प्रतिस्थापित करती है, और संशोधित पैरामीटर सूची को "/ usr / bin / say" पास करती है।
  • स्क्रिप्ट को निष्पादन योग्य बनाएं, इसे "कहें" कहें और इसे उस फ़ोल्डर में डालें जो आपके $ PATH में पहले की तुलना में दिखाई देता है "/ usr / bin"।
  • अपनी शब्द-युग्म सूची में वर्तनी वेरिएंट जोड़ें क्योंकि आपको अधिक शब्द मिलते हैं जो आप अलग-अलग उच्चारण करना चाहते हैं।

आपका नया कहना पुराने कहने की तरह काम करेगा, लेकिन आपके पसंदीदा उच्चारण के साथ।


3

@ ब्रूनो-कार्वाल्हो के जवाब ने मेरे लिए इस सवाल का जवाब दिया। लेकिन, मुझे [[inpt TEXT]]सामान्य रूप से पाठ (स्पीच सिंथेसाइजिंग) पाठ पर लौटने के लिए कहने की आज्ञा पाने के लिए टैग का शिकार करने की भी आवश्यकता थी । उदाहरण के लिए:
say [[inpt PHON]] hAAIH, [[inpt TEXT]] how are you?

उम्मीद है, इस उत्तर को जोड़ने से इस प्रश्न के बाद के पाठकों को मदद मिलेगी।


2

मुझे नहीं लगता कि आप कर सकते हैं। आप सिस्टम वरीयताओं में एक अलग से डिफ़ॉल्ट आवाज सेट करने की कोशिश कर सकते हैं, या आप टाइप कर सकते हैं कि आप चीजों को कैसे उच्चारण करना चाहते हैं। उदाहरण के लिए, "हाय, जोल स्पोले आकाश।"


1
कैसे "स्पॉल्स्की" के बारे में?
डग हैरिस

2

यह एक दुर्भाग्यपूर्ण सीमा है, जिसे देखते हुए लगता है कि ऐप्पल वहाँ पर सबसे ज्यादा मौजूद है। VoiceOver के उपयोगकर्ता आसानी से VoiceOver उपयोगिता (भाषण-> उच्चारण) का उपयोग करके अपने स्वयं के उच्चारण सम्मिलित कर सकते हैं। लेकिन, VoiceOver सेटिंग्स सफारी और अन्य ऐप्पल-प्रदत्त एप्लिकेशनों में "कहने" के लिए "कह" या संपादन-> भाषण -> "प्रारंभ भाषण" मेनू पर लागू नहीं होती हैं।


0

sayशब्दों को अलग-अलग उच्चारण करने के लिए कार्यक्रम को 'सिखाने' का कोई तरीका नहीं है । जैसा कि ऊपर बताया गया है, आप जो उच्चारण चाहते हैं, उसे प्राप्त करने का सबसे आसान तरीका है कि आप अपने शब्दों की वर्तनी को तब तक समायोजित करें जब तक कि यह आपके इच्छित तरीके को न कह दे।

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