android的发音功能实现,为Android TTS引擎指定发音的最佳做法?
一般來說,我對Android的默認(rèn)文字引擎(即com.svox.pico)印象深刻。正如預(yù)期的那樣,它誤導(dǎo)了一些話(像我一樣),因此偶爾需要一些發(fā)音指導(dǎo)。所以我想知道最好的做法,用于語音拼寫出微軟TTS引擎誤導(dǎo)的那些話。
例如,正確的發(fā)音鳥Chachalaca是CHAH-chah-LAH-kah。這是TTS引擎產(chǎn)生的:
mTts.speak("Chachalaca", TextToSpeech.QUEUE_ADD, null); // output: chuh-KAL-uh-KUH
mTts.speak("CHAH-chah-LAH-kah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-EL-AY-AYCH-dash-kuh
mTts.speak("CHAHchahLAHkah", TextToSpeech.QUEUE_ADD, null); // output: CHA-chah-LAH-ka
mTts.speak("CHAH chah LOCKah", TextToSpeech.QUEUE_ADD, null); // output: CHAH-chah-LAH-kah
這是我的問題。
> Android TTS引擎是否識(shí)別出標(biāo)準(zhǔn)拼音?
>如果沒有,是否有一些一般的規(guī)則來制作自定義的發(fā)音拼寫,這些拼寫在未來的TTS引擎/版本中會(huì)更有可能是正確的?
看來Android TTS引擎忽略了文本大小寫。什么是指定重點(diǎn)的最佳方法?
順便說一下,這是TTS引擎寫的logcat:
V / TtsService(294):TTS處理:CHAH chah LOCKah
V / TtsService(294):TtsService.setLanguage(eng,USA,)
I / SVOX Pico Engine(294):語言已經(jīng)加載(en-US == en-US)
I / SynthProxy(294):將語速設(shè)置為100
I / SynthProxy(294):設(shè)置音高為100
[UPDATE]
我嘗試將XML文檔傳遞給TextToSpeech.speak(),如下所示:
String text = "<?xml version=\"1.0\"?>" +
"
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
"xsi:schemaLocation=\"http://www.w3.org/2001/10/synthesis " +
"http://www.w3.org/TR/speech-synthesis/synthesis.xsd\" " +
"xml:lang=\"en-US\">" +
"That is a big car! " +
"That is a big car! " +
"That is a big car! " +
"That is a huge bank account! " +
"That is a huge bank account! " +
"That is a huge bank account!" +
"
";mTts.speak(text, TextToSpeech.QUEUE_ADD, null);
正如Android Eve所建議的那樣,TTS引擎只讀取XML體(即關(guān)于大型汽車和龐大的銀行帳戶的評(píng)論)。我沒有意識(shí)到TTS引擎能夠解析XML文檔。但是,我沒有聽到TTS輸出的任何重點(diǎn)。
[更新2]
我簡化了Android TTS是否支持語音合成標(biāo)記語言here的問題。
總結(jié)
以上是生活随笔為你收集整理的android的发音功能实现,为Android TTS引擎指定发音的最佳做法?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有意思的复活节彩蛋[摘]
- 下一篇: ansible学习系列之顺利启动后台程序