在线语音合成 5-1
1.在线语音合成2.添加权限G:\AndroidStudioProjects\AiVoikeApp\app\src\main\AndroidManifest.xml<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permissi
·
1.在线语音合成



2.添加权限
G:\AndroidStudioProjects\AiVoikeApp\app\src\main\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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
支持level 28以上编译
<uses-library android:name="org.apache.http.legacy" android:required="false"/>

3.导包
这个文件添加到

名字太长我改了名字

添加依赖库
对外所有用api

把这个文件夹也放进去
D:\Downloads\sdk_tts_baidu_speech_Baidu_TTS_Android_2.6.2.2.20200629_44818d4_online_1.1.4\app\src\main


4.初始化
G:\AndroidStudioProjects\AiVoikeApp\lib_voice\src\main\java\com\example\lib_voice\TTs\VoiceTTs.kt
package com.example.lib_voice.TTs
import android.content.Context
import android.util.Log
import com.baidu.tts.client.SpeechError
import com.baidu.tts.client.SpeechSynthesizer
import com.baidu.tts.client.SpeechSynthesizerListener
import com.baidu.tts.client.TtsMode
/**
* 作者: 13967
* 时间: 2021/2/19 15:34
* 描述: 百度Ai语音 - TTs 封装
*
* 1.实现其它参数
* 2.实现监听播放结束
*
*/
object VoiceTTs : SpeechSynthesizerListener {
private var TAG = VoiceTTs::class.java.simpleName //打印日志
//语音 key
private const val VOICE_APP_ID = "23******08"
private const val VOICE_APP_KEY = "6Hj******nxfB"
private const val VOICE_APP_SECRET = "HIqiojt******mUkamjh3j"
//TTs对象
private lateinit var mSpeechSynthesizer:SpeechSynthesizer
//初始化TTs
fun initTTS(mContext: Context){
//初始化对象
mSpeechSynthesizer = SpeechSynthesizer.getInstance()
//设置上下文
mSpeechSynthesizer.setContext(mContext)
//设置Key 设置 App Id和 App Key 及 App Secret
mSpeechSynthesizer.setAppId(VOICE_APP_ID)
mSpeechSynthesizer.setApiKey(VOICE_APP_KEY, VOICE_APP_SECRET)
//设置监听
mSpeechSynthesizer.setSpeechSynthesizerListener(this)//注意重写
//其他参数
//发声人
//语速
//音量
//初始化
mSpeechSynthesizer.initTts(TtsMode.ONLINE)//在线的
}
override fun onSynthesizeStart(p0: String?) {
Log.i(TAG,"合成开始")
}
override fun onSynthesizeDataArrived(p0: String?, p1: ByteArray?, p2: Int, p3: Int) {
//合成过程中的数据回调接口
}
override fun onSynthesizeFinish(p0: String?) {
Log.i(TAG,"合成结束")
}
override fun onSpeechStart(p0: String?) {
Log.i(TAG,"开始播放")
}
override fun onSpeechProgressChanged(p0: String?, p1: Int) {
//播放过程中的回调
}
override fun onSpeechFinish(p0: String?) {
Log.i(TAG,"播放结束")
}
override fun onError(p0: String?, p1: SpeechError?) {
Log.i(TAG,"错误")
//合成和播放过程中出错时的回调
}
//播放
fun start(text:String){
mSpeechSynthesizer.speak(text)
}
//暂停播放
fun pause(){
mSpeechSynthesizer.pause()
}
//继续播放
fun resume(){
mSpeechSynthesizer.resume()
}
//停止播放
fun stop(){
mSpeechSynthesizer.stop()
}
//释放
fun release(){
mSpeechSynthesizer.release()
}
}
更多推荐

所有评论(0)