提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
目前只要是关于小说或者英语相关软件,就会遇到需要朗读文本或者单词,这时就需要涉及到语音合成功能,如果再涉及一些聊天啥的(不一定是即时通讯)就会涉及语音识别,比如简单的聊天问AI,用语音问,这时后台会告诉你AI那边没有语音的,需要把语音转成文字给AI,来吧,看看怎么实现。
效果图


一、去讯飞官网注册讯飞官网
去讯飞官网注册后进行实名认证,然后创建应用就会得到APP_ID。
二、下载jar和so文件讯飞SDK
三、语音合成
1.将jar和so文件放到libs文件下并引用(必须要so文件)
代码如下(语音合成和识别共用):
//讯飞
implementation files('libs/Msc.jar')
2.Application中实例化
代码如下(语音合成和识别共用,切记保留appid=,只替换后面YOUR_APP_ID):
// 初始化讯飞 SDK(替换 YOUR_APP_ID)
SpeechUtility.createUtility(this, "appid=YOUR_APP_ID")
3.activity中使用
//定义变量
private var tts: SpeechSynthesizer? = null
// 初始化语音合成器
tts = SpeechSynthesizer.createSynthesizer(this, null)
//朗读 xiaoyan这里自己去新建应用后找到语音合成,特色发音,新建发音人
private fun startTTS(text: String?) {
// 设置参数
tts!!.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan")
tts!!.setParameter(SpeechConstant.SPEED, "40") // 语速(0~100)
tts!!.setParameter(SpeechConstant.PITCH, "50") // 音调(0~100)
tts!!.setParameter(SpeechConstant.VOLUME, "100") // 音量(0~100)
// 开始合成并播放
tts!!.startSpeaking(text, object : SynthesizerListener {
override fun onSpeakBegin() {
// 开始播放
}
override fun onBufferProgress(percent: Int, beginPos: Int, endPos: Int, info: String?) {
// 缓冲进度
}


2588

被折叠的 条评论
为什么被折叠?



