Android开发

Android TTS API笔记

2019-01-09  本文已影响4人  VinaChiong

写在前面


今日应内部团队需求,要实时朗读语音。在这个场景驱动,快速过了一遍官方文档。通过此笔记,摘录自己的思考和理解的内容,方便日后快速回忆。
所以说这是一个偏个人的笔记,对于需要全面了解TTS的看官,可能要失望了。

「android.speech」和「android.speech.tts」


「android.speech」包不在我这次要了解的范围内,后续会补上相关笔记。

「android.speech.tts」包的tts是「Text To Speech」缩写,文字转语音。

为了开发者便于使用,在AOSP中,关于「兼容性定义文档」的说明,要求每个Android OS版本发行都要兼容的功能实现,其中「TTS」就是以一个Framework的形式存在,开发者通过已有的API,与这个Framework服务进行交互动作。

以一个简单的使用常见为例:播放一句话,简单列出涉及到的相关API。

上述是一次理想的流程,在实际场景中,可能会遇到各种情况,例如文字识别失败、网络识别的网络失败、framework服务内部失败、音频流输出失败等情况,API都有相关的常量值可供识别使用。

另外TextToSpeech.Engine类,不是一个真正的“引擎”,它只定义了与Framework交互使用到常量:Activity Action、Broadcast Action、Intent、Bundle Key值等,所以这个命名一度令我不知所措。
Framework本身还支持开发者通过ACTION,调用:检查是否可用的语言包、是否有Framework存在、检查目标语言的语言包是否已安装、发起安装语言包指令。

后记


通过简单的封装,配合WebView的Js Interface,让H5前端项目的同事能调用Android的TTS进行朗读。然而事情没有那么简单,因为使用的设备是小米电视4,根本就没有TTS Framework,只能使用第三方语音识别SDK解决,例如科大讯飞的。
Anyway,借机了解这块API,也是有所收获。

上一篇 下一篇

猜你喜欢

热点阅读