第一步:内置GoogleTTS文字转语音引擎
打上如下补丁:
不仅可以内置googletts而且可以把googletts文字转语音引擎设为默认选项。
diff --git a/frameworks/base/core/java/android/speech/tts/TextToSpeech.java b/frameworks/base/core/java/android/speech/tts/TextToSpeech.java
index 01562b3..99e7598 100644
--- a/frameworks/base/core/java/android/speech/tts/TextToSpeech.java
+++ b/frameworks/base/core/java/android/speech/tts/TextToSpeech.java
@@ -282,8 +282,8 @@ public class TextToSpeech {
* alone be the default.
*/
@Deprecated
- public static final String DEFAULT_ENGINE = "com.svox.pico";
-
+ //public static final String DEFAULT_ENGINE = "com.svox.pico";
+ public static final String DEFAULT_ENGINE = "com.google.android.tts";//luke add for default tts
/**
* Default audio stream used when playing synthesized speech.
*/
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index fce2497..300de87 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -217,4 +217,5 @@
<!-- Default for Settings.System.VIBRATE_WHEN_RINGING -->
<bool name="def_vibrate_when_ringing">false</bool>
+ <string name="default_tts" translatable="false">com.google.android.tts</string>
</resources>
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 3aae5e4..13875e1 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -2443,6 +2443,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
R.integer.def_sleep_timeout);
+ loadStringSetting(stmt, Settings.Secure.TTS_DEFAULT_SYNTH,
+ R.string.default_tts);//luke add for deault tts
+
/*
* IMPORTANT: Do not add any more upgrade steps here as the global,
* secure, and system settings are no longer stored in a database
第二步:下载Google tts中文包
中文包下载网站:
"download_urls": [
"https://dl.google.com/android/tts/v26/cmn-cn/cmn-cn-x-multi-r53.zvoice",
"https://redirector.gvt1.com/edgedl/android/tts/v26/cmn-cn/cmn-cn-x-multi-r53.zvoice"
]
第三步:反编译Google tts apk(这里需要先去下载反编译工具apktool)
首先:
解包apk:java -jar apktool_2.11.1.jar d tts_googletts.apk -o tts_googletts
这会将 APK 文件解包到 tts_googletts 目录中
其次(重点):
复制cmn-cn/cmn-cn-x-multi-r53.zvoice 到assets下的voices文件中。
然后:
重新打包apk:java -jar apktool_2.11.1.jar b tts_googletts -o tts_googletts_new.apk
这会将修改后的文件重新打包成一个新的 APK 文件 tts_googletts_new.apk
最后:
对重新打包的tts_googletts_new.apk重新进行系统签名
第四步:重新安装
adb install tts_googletts_new.apk
不仅可以内置googletts而且可以把googletts文字转语音引擎设为默认选项。
第五步:测试成果(不同设备选项位置可能不同)
打开系统设置,找到系统选项,在语言和输入法里找到语音选项下面的文字转语音输出选择中文点击播放测试。如果听到这是一个中文语音合成的范例说明内置成功。