简要说明
最近两天需要做一个python的小程序, 就是实现人与智能机器人(智能对话接口)的对话功能,目前刚刚测试了一下可以实现, 就是能够实现个人与机器的智能对话(语音交流)。
总体的思路
大家可以设想一下, 如果要实现人与机器的智能对话, 肯定要有以下几个步骤:
- 计算机接收用户的语音输入
- 将用户输入的语音输入转化为文本信息
- 调用智能对话接口, 发送请求文本信息, 获取接口返回的智能回答文本信息
- 将回答文本信息转化为语音格式输出
这里可以安装很多现成的库函数, 辅助我们系统的实现。
需要准备的环境
以下是需要安装的一些python依赖包
- pip install pyaudio 安装pyaudio依赖包, 用于录音、生成wav文件
- pip install baidu-aip 安装百度AI的sdk, 调用语音技术接口将音频识别为文本数据返回
- pip install pyttsx3 安装pyttsx3依赖包, 将文本信息以音频的格式播放出来
接下来我会逐步实现以上每个功能,最后再组合起来。
接收用户的语音输入,并将其存为音频文件
import time import wave from pyaudio import PyAudio, paInt16 framerate = 16000 # 采样率 num_samples = 2000 # 采样点 channels = 1 # 声道 sampwidth = 2 # 采样宽度2bytes FILEPATH = '../voices/myvoices.wav' #该文件目录要存在 #用于接收用户的语音输入, 并生成wav音频文件(wav、pcm、mp3的区别可详情百度) class Speak(): #将音频数据保存到wav文件之中 def save_wave_file(self, filepath, data): wf = wave.open(filepath, 'wb') wf.setnchannels(channels) wf.setsampwidth(sampwidth) wf.setframerate(framerate) wf.writeframes(b''.join(dat