一、目前安卓平台的文字转语音有两种方案
1、百度、讯飞等sdk
优点:声音丰富,不需其他插件
缺点:收费,导入调用麻烦,增加apk体积
2、TextToSpeech
优点:免费,调用方便,几行代码即可,无需导sdk
缺点:声音单一,需要安装引擎
二、TextToSpeech的简单使用
lateinit var textToSpeech: TextToSpeech
fun initTTS(){
textToSpeech = TextToSpeech(mContext) {
when (it) {
TextToSpeech.SUCCESS -> {}//成功
TextToSpeech.ERROR -> {}//失败
}
}
//引擎列表
val engineList = textToSpeech.engines
//当前默认引擎
val engine = textToSpeech.defaultEngine
//语言
textToSpeech.language = Locale.CHINESE
//语调 越大越高
textToSpeech.setPitch(0.9f)
//语速 越大越快
textToSpeech.setSpeechRate(1f)
}
fun speak(text:String){
val result = textToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, null)
}
语音引擎可以在系统设置-语言与输入法-语音技术/TTS,或无障碍中查看,没有的话安装一个就可以,不同的引擎的语速、语调、音色都不一样。
引擎下载参考: