当前位置:   article > 正文

python实现 AI语音小助手_python小助手

python小助手

AI语音小助手

介绍

调用通义,百度的API
语音录制与识别:使用PyAudio库录制用户语音,以WAV格式保存至speech.wav文件。随后通过百度语音识别API(AipSpeech)将语音转为文本,支持多种语言(普通话、英文、粤语、四川话)。

软件架构

软件架构说明

该软件采用客户端-服务器架构,具体为客户端负责语音采集、处理与播放,服务器端负责语音识别与文本生成。以下是详细的架构说明:
客户端:

语音录制:客户端通过PyAudio库实现麦克风音频流的实时采集。设置采样率、声道数、采样宽度等参数,持续一定时间(此处为4秒)记录音频数据。

语音文件保存:采集到的音频数据以WAV格式保存至本地文件speech.wav,便于后续传输至服务器进行识别。

语音识别结果处理:客户端接收服务器返回的语音识别结果,将其封装为消息对象(包含角色标识与内容),并传递给call_with_messages函数以生成AI助手的文本回复。

语音播报:使用pygame.mixer库加载并播放由百度语音合成API生成的音频文件(用户语音识别结果和AI助手的回答)。播放完毕后,清理资源并删除临时音频文件。

循环交互:客户端通过while循环等待用户输入,决定是否继续下一轮语音交互。

服务器端:

语音识别:客户端将保存的speech.wav文件上传至百度语音识别服务(通过AipSpeech库接口),指定识别语言参数。服务器返回识别结果,客户端解析并提取文本内容。

文本生成:客户端将用户语音识别结果封装为消息对象,调用dashscope库接口与Qwen Turbo模型交互。模型生成的AI助手回复作为call_with_messages函数的输出。

语音合成:客户端将用户语音识别结果和AI助手的文本回复分别发送至百度语音合成服务,生成对应的MP3格式语音文件。这些文件随后被客户端下载并播放。

通信方式:

客户端与百度服务器:采用HTTP/HTTPS协议进行网络通信,客户端向百度语音识别与语音合成API发送POST请求(携带音频数据或文本信息),接收并解析JSON格式的响应结果。

客户端内部:通过函数调用与数据结构传递(如列表、字典)实现各模块之间的通信。

数据流:

用户语音 → 客户端录制 → WAV文件保存 → 上传至百度语音识别服务 → 文本结果返回客户端。

文本结果 → 包装为消息对象 → 传递给call_with_messages函数 → AI助手回复生成。

用户语音识别结果与AI助手回复 → 分别发送至百度语音合成服务 → MP3文件生成并返回客户端。

MP3文件 → 客户端加载并播放 → 播放完毕后删除临时文件。

总结来说,该软件架构清晰,职责分明,客户端负责用户交互与音频处理,服务器端承担语音识别与文本生成任务,二者通过标准化网络接口高效协作,共同实现多语言语音对话系统功能。

安装教程

放入pycharm运行,依次下载所需软件包

然后,填入自己的通义,百度api。

特技

语音录制与识别:使用PyAudio库录制用户语音,以WAV格式保存至speech.wav文件。随后通过百度语音识别API(AipSpeech)将语音转为文本,支持多种语言(普通话、英文、粤语、四川话)。用户通过输入数字选择识别语言。

AI对话生成:利用dashscope库调用Qwen Turbo模型,根据用户语音识别结果生成AI助手的文本回复。回复内容通过call_with_messages函数获取,该函数处理Dashscope API响应,确保输出小助手的回答。

语音播报:使用百度语音合成API(baidu_text_to_speech函数)将用户语音识别结果和AI助手的回答分别转化为语音。生成的音频文件以MP3格式存储并使用pygame.mixer播放。播放完毕后,临时音频文件立即被删除。

循环交互:程序以循环方式运行,用户输入y时继续下一轮交互。每轮交互包括用户语音录制、识别、AI对话生成及双端语音播报。


下载

我的Gitee地址:https://gitee.com/wqqqqqqqqqqqqqqqqq/tongyi-ai-voice-assistant

git@gitee.com:wqqqqqqqqqqqqqqqqq/tongyi-ai-voice-assistant.git

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/792538
推荐阅读
相关标签
  

闽ICP备14008679号