java可以调用tts接口_使用微信语音合成接口(TTS)

本文介绍了在遇到安卓自带TTS问题后,转向使用微信开放平台的TTS服务来实现语音播报的过程。详细讲述了从下载测试apk,处理libs文件夹,到删除不必要的jar包,解决运行时错误,以及在没有网络时返回的错误代码。最后提醒注意微信TTS需要网络,并建议在无网络情况下考虑使用其他服务。
摘要由CSDN通过智能技术生成

2017-04-19 遇到的一点小问题

APP的收款功能,需要语音播报收到的个别推送消息。听说这个叫TTS(TextToSpeech)。

网上看了一下安卓自带的android.speech.tts.TextToSpeech,试了试,很麻烦,会弹出选择对话框,而且米2S试了下,返回SUCCESS,但就是没声音。。。

14d4450aeae6

TTS选择对话框

那就换一下专业的,看了下讯飞开放平台。功能很丰富,有很多发音人可选择。可惜离线是收费的,只有在线是免费得,担心有影响,算了。

正好应用里微信的功能用得不少,就上微信开放平台看一下。下载了测试apk竟然闪退,原来他的libs里面armeabi-v7a文件夹里竟没有libWXVoice.so文件。没办法,只能删掉其他,只保留armeabi文件夹和里面的libWXVoice.so文件

14d4450aeae6

微信TTS的libs.

看了下文档,没发现mid-sdk-2.10.jar和mta-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

14d4450aeae6

微信TTS报错

好吧,测试正常了,试一下效果。

和demo里的操作一样,没什么要特别注意的。除了使用SpeechSynthesizer.shareInstance().start(str)时,返回的int可能等于20109,这是因为微信开放平台AppID写错或包名签名不对。这个文档没写,要注意。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值