android 讯飞语音引擎3.0默认粤语播报

粤语语音引擎apk及粤语资源包
android 6.0 平台老人机需求设备默认支持粤语离线播报,在网上找了许多资料都没有价值。
发现讯飞的TTS3.0联网下载粤语包后可以完美支持。然后尝试反编译和预置apk及资源包,最终解决了这个问题。

  1. 预置apk
    首先预置apk。参考:预置apk
  2. 预置粤语资源
    资源包预置在 /storage/sdcard0/Speechcloud/ 目录下,注意编译时无法将文件预置进设备 sdcard,需要先将文件预置到如apk预置目录或/system/sdcard/或其他rom中已存在的目录下,然后写Service监听开机广播,判断首次开机时将/system/sdcard/目录下预置的资源文件copy到到/storage/sdcard0/Speechcloud/ 。参考:Android MTK预置音乐/图片/文件
  3. 编写demo测试
    关键方法:
+import android.speech.tts.TextToSpeech;
+import java.util.Locale;


+       private TextToSpeech mTextToSpeech;
+       private void speak(Context mContext, String paramString){
+               if(mTextToSpeech == null) {
+               mTextToSpeech=new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {
+                       @Override
+                       public void onInit(int status) {
+                               if (status==TextToSpeech.SUCCESS) {
+                                       int supported=mTextToSpeech.setLanguage(Locale.US);
+                                       if ((supported!=TextToSpeech.LANG_AVAILABLE)&&(supported!=TextToSpeech.LANG_COUNTRY_AVAILABLE)) {
+                                               Log.i("mh","TextToSpeech error");
+                                       }
+                               }
+                       }
+               });
+               }
+               mTextToSpeech.speak(paramString, TextToSpeech.QUEUE_FLUSH, null); 
+       }
         
  1. 将默认语音引擎设置为讯飞
    Android 6.0 修改方法:frameworks/base/core/java/android/speech/tts/TtsEngines.java
     public String getDefaultEngine() {
         String engine = getString(mContext.getContentResolver(),
                 Settings.Secure.TTS_DEFAULT_SYNTH);
+                if(engine==null) {
+                       engine ="com.iflytek.speechcloud";
+                }
         return isEngineInstalled(engine) ? engine : getHighestRankedEngineName();
     }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值