目前在TTS方面,iOS内置了对中文语言对支持,但是Android中并没有,需要借助第三方的SDK才可实现,该组件对用途便是为React Native Android提供中文TTS的能力(百度语音提供)。如果你希望你的App在多平台下支持多种语言的TTS,可在该组件的基础上搭配使用:react-native-tts。
npm install react-native-cn-tts
react-native link react-native-cn-tts
要正常使用该组件,需要先注册百度语音,并创建应用以获得授权
- 账号注册: 百度语音
- 创建应用: 应用管理内创建应用 - 输入名称 - 启动语音合成服务 - 选择Android平台 - 输入最终想要集成到的App包名,如com.symous.cntts
- 获取授权信息: 在现有应用列表内,找到创建的应用,可查看到App ID/Api Key/Secret Key
- 需要配置以下权限 (AndroidManifest.xml 文件)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
//引入module
import cntts from 'react-native-cn-tts'
//注册服务
cntts.init(appID,apiKey,secretKey).then(()=>{
//注册成功
tts.speak('成功了,老铁!');
}).catch((e)=>{
//注册失败
})
cntts.addEventListener('tts-finish', () => {});
cntts.addEventListener('tts-cancel', () => {});
cntts.addEventListener('tts-start', (event) => {});
cntts.addEventListener('tts-progress', (event) => {});
- speak(text)
- stop()
- pause()
- resume()
- addEventListener()