美文网首页
使用微信语音合成接口(TTS)

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

作者: 苍蝇的梦 | 来源:发表于2017-04-20 17:27 被阅读1477次

    2017-04-19 遇到的一点小问题
    APP的收款功能,需要语音播报收到的个别推送消息。听说这个叫TTS(TextToSpeech)。
    网上看了一下安卓自带的android.speech.tts.TextToSpeech,试了试,很麻烦,会弹出选择对话框,而且米2S试了下,返回SUCCESS,但就是没声音。。。

    TTS选择对话框
    那就换一下专业的,看了下讯飞开放平台。功能很丰富,有很多发音人可选择。可惜离线是收费的,只有在线是免费得,担心有影响,算了。
    正好应用里微信的功能用得不少,就上微信开放平台看一下。下载了测试apk竟然闪退,原来他的libs里面armeabi-v7a文件夹里竟没有libWXVoice.so文件。没办法,只能删掉其他,只保留armeabi文件夹和里面的libWXVoice.so文件
    微信TTS的libs.
    看了下文档,没发现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写错或包名签名不对。这个文档没写,要注意。

    刚关掉网络试了一下,没有网络会返回-100。又去看了文档,才发现这个微信也是需要网络的。。。汗!换讯飞试试看

    相关文章

      网友评论

          本文标题:使用微信语音合成接口(TTS)

          本文链接:https://www.haomeiwen.com/subject/fpnkzttx.html