android 讯飞语音引擎3.0 文字转语音 默认粤语播报
生活随笔
收集整理的這篇文章主要介紹了
android 讯飞语音引擎3.0 文字转语音 默认粤语播报
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
粵語語音引擎apk及粵語資源包
android 6.0 平臺老人機需求設備默認支持粵語離線播報,在網上找了許多資料和apk都沒有解決。
發現訊飛的TTS3.0聯網下載粵語包后可以完美支持。然后嘗試反編譯修改默認語音最后預置apk及資源包,最終解決了這個問題。
1. 預置apk
首先預置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 sendCustomBroadcast(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);
+ }
4. 將默認語音引擎設置為訊飛
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();
}
以上可以自行定制如撥號盤按鍵播報,來電報號,電話簿報號等。
總結
以上是生活随笔為你收集整理的android 讯飞语音引擎3.0 文字转语音 默认粤语播报的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 应用案例:SequoiaDB+Spark
- 下一篇: Linux MYSQL 数据库