使用微信語音合成接口(TTS)

2017-04-19 遇到的一點小問題
APP的收款功能,需要語音播報收到的個別推送消息。聽說這個叫TTS(TextToSpeech)。
網(wǎng)上看了一下安卓自帶的android.speech.tts.TextToSpeech,試了試,很麻煩,會彈出選擇對話框,而且米2S試了下,返回SUCCESS,但就是沒聲音。。。

TTS選擇對話框

那就換一下專業(yè)的,看了下訊飛開放平臺。功能很豐富,有很多發(fā)音人可選擇??上щx線是收費的,只有在線是免費得,擔(dān)心有影響,算了。
正好應(yīng)用里微信的功能用得不少,就上微信開放平臺看一下。下載了測試apk竟然閃退,原來他的libs里面armeabi-v7a文件夾里竟沒有libWXVoice.so文件。沒辦法,只能刪掉其他,只保留armeabi文件夾和里面的libWXVoice.so文件
微信TTS的libs.

看了下文檔,沒發(fā)現(xiàn)mid-sdk-2.10.jarmta-sdk-2.0.2.jar有啥用,就給刪掉了,沒想到一刪就報錯。真坑,文檔不寫一下。

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/tencent/stat/StatSpecifyReportedInfo;
...
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.tencent.stat.StatSpecifyReportedInfo" on path: DexPathList[[zip file "/data/app/com.wannoo.test-2/base.apk"],nativeLibraryDirectories=[/data/app/com.wannoo.test-2/lib/arm, /vendor/lib, /system/lib]]
...
 Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
微信TTS報錯

好吧,測試正常了,試一下效果。
和demo里的操作一樣,沒什么要特別注意的。除了使用SpeechSynthesizer.shareInstance().start(str)時,返回的int可能等于20109,這是因為微信開放平臺AppID寫錯或包名簽名不對。這個文檔沒寫,要注意。

剛關(guān)掉網(wǎng)絡(luò)試了一下,沒有網(wǎng)絡(luò)會返回-100。又去看了文檔,才發(fā)現(xiàn)這個微信也是需要網(wǎng)絡(luò)的。。。汗!換訊飛試試看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容