#创作灵感#
- 高校人工智能专业课程实训项目
- 个人项目实践知识总结
最近高校邀请我去做学校的课程实训项目,要求我出个项目,不过因为我只会软件类的,因此选择使用python调用字节跳动旗下的语音及大模型接口来实现一个语音智能聊天机器人,有点类似微信的语音消息聊天。
思路与架构:
实现思路
- 调用录音接口->生成语音文件
- 将语音文件内容识别成文字
- 将识别后的文字请求到聊天大模型进行返回消息
- 将聊天大模型返回的文字内容,进行语音合成
- 播放语音合成的语音文件
原理参考火山引擎的语音实时通话-青青这个实践应用,只不过我这里设计的不是实时通话,而是语音消息的发送,类似于微信的发送语音消息,而这里的类似于语音电话。
架构图
这是官方应用广场青青的架构图,我这里参考它的架构图的原理实现。
简单解释下这个架构图:
这个应用使用的是web的b/s架构,通过在线语音录制后,通过API网关将语音通过websocket长连接协议进行实时传输,传递给后台的Dobao-流式语音识别接口,识别出文字结果后,将识别结果给到后端的SSE(火山引擎中的 SSE(Server-Side Encryption) 是对象存储服务 TOS(Torch Object Storage)提供的一项服务器端加密功能),然后通过SSE服务将文本结果给到Dobao-pro-32k的语言大模型,大模型会进行分析处理和回答,将回答的消息通过websocket长连接协议再转发给Dobao-语音合成接口,最后将合成后的结果通过websocket长连接协议进行流式播放,得到一个完整的语音聊天智能应用。
python+火山引擎实现语音对话功能
(1)语音录入
先进行语音录入,只不过不需要websocket长连接,因为我不需要实时通话。
录音参考脚本:Python Audio 库 详解-腾讯云开发者社区-腾讯云
(2)语音识别(ASR)
录入完成后,需进行语音识别,底层就会调用对应的语音识别接口,只不过我不使用流式语音识别,我这里使用一句话识别。
-
使用火山引擎的流式语音识别 API 将用户的语音输入转换为文本。
-
配置 ASR 的相关参数,如
AppId
、AccessToken
等。