人工智能应用导论(第三版)5-5语音助手实验手册_第1页
人工智能应用导论(第三版)5-5语音助手实验手册_第2页
人工智能应用导论(第三版)5-5语音助手实验手册_第3页
人工智能应用导论(第三版)5-5语音助手实验手册_第4页
人工智能应用导论(第三版)5-5语音助手实验手册_第5页
已阅读5页,还剩4页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

语音助理实验手册【项目目标】本项目是在PC机上实现语音助手功能,用户可与PC机进行语音交互,并通过语音控制PC机打开记事本、计算器、画图板等应用程序。项目采用Python语言,通过调用百度AI平台的语音识别和语音合成API接口实现。项目操作手册与代码可通过扫描本节右侧的二维码获得。本项目具体目标如下:体验语音识别、语音合成效果;了解语音助手应用开发流程;掌握百度AI云平台语音模块API接口调用方法。项目实现效果如图5-15所示,可通过语音控制PC打开记事本、计算器、画图板。图5-15语音助手实现效果项目开发流程如图5-16所示,主要步骤有录音、语音识别、语音合成、播放、集成处理,下面我们将按照流程一步一步完成项目开发。图5-16语音助手项目流程图任务一录音与播放语音助手首先要能够采集语音(录音),并回复语音(播放),在Python编程环境下,通常采用PyAudio库来完成录制和播放音频。PyAudio是一个跨平台的音频处理库,支持录制和播放wav、mp3等格式的音频文件。录音与播放任务的实验手册可以通过扫描二维码获得,本任务运行“录音与播放.ipynb”程序文件,实现录制一段5秒的音频并播放出来。步骤一:创建工程打开“JupyterNotebook”,进入工程文件夹“智能语音助手”,打开“录音与播放.ipynb”文件并运行,即可实现录音5秒,并保存到“test.wav”文件,再播放该录音文件。运行结果如图5-17所示:图5-17任务一运行结果主要代码讲解:1.导入库frompyaudioimportPyAudio,paInt16importnumpyasnpimportwave2.定义全局变量NUM_SAMPLES=2000#pyaudio内置缓冲大小SAMPLING_RATE=16000#取样频率TIME_COUNT=5#录音时间,单位s3.打开音频输入流实例化一个PyAudio对象,并用open方法打开音频输入流,同时设置采样率等参数。pa=PyAudio()#实例化PyAudio对象#打开音频流stream=pa.open(format=paInt16,#取样值的量化格式,常用格式有paFloat32,paInt32,paInt24,paInt16等channels=1,#声道数,1为单声道,2为双声道rate=self.SAMPLING_RATE,#采样频率input=True,#输入流标志,设置为True时,启动输入流frames_per_buffer=self.NUM_SAMPLES)#底层缓存块的大小4.采集音频time_count=self.TIME_COUNT#录音时间5scount=0#初始化计数器为0whilecount<time_count*10:#开始采集音频,循环关闭条件为计数超过5sstring_audio_data=stream.read(self.NUM_SAMPLES)self.Voice_Buff.append(string_audio_data)count+=15.关闭音频流,保存音频文件stream.stop_stream()#停止音频流的数据传输stream.close()#关闭音频流,释放系统资源pa.terminate()#终止PyAudio会话,释放资源self.savewave(filename)#保存音频文件6.播放音频文件chunk=1024#打开录制的音频文件wf=wave.open(filename,'rb')pa=PyAudio()#打开一个数据流对象,解码而成的帧将直接通过它播放出来,我们就能听到声音stream=pa.open(format=pa.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)#读取第一帧数据data=wf.readframes(chunk)#播放音频#结束的标志为读到了空的帧whiledata!=b'':#将帧写入数据流对象中stream.write(data)#继续读取后面的帧data=wf.readframes(chunk)7.定义主程序入口。实例化录音record对象,开始录音,并保存录音到test.wav文件,最后播放test.wav文件。if__name__=="__main__":r=recorder()#实例化一个录音的对象r.recorder("test.wav")#开始录音,并保存到test.wav文件r.playwav("test.wav")#播放test.wav文件任务二语音识别语音识别和语音合成功能调用百度AI云平台接口,首先要在百度平台创建自己的应用,按照下面步骤实现。步骤一:领取“语音识别”“语音合成”免费资源首先登陆/,进入“开放能力”->“语音技术”->“短语音识别”,然后点击“立即使用”;系统会要求登陆百度AI云平台,可用百度账号登陆,如果没有账号,需要先注册,登陆后进入网页右上角“用户中心”,填写实名认证信息,实名认证后才可使用云平台的AI技能,如图5-18。图5-18登陆百度AI云平台实名认证后,进入“语音技术”界面后,在“概览”页面,“服务列表”中,可以查看的免费资源使用时间和使用次数,如图5-19。图5-19领取免费资源步骤二:创建语音应用领用免费技能资源后,需要创建自己的应用。网页左侧选择“应用列表”,然后点击“创建应用”,填入应用信息。填写内容可参考表5-1:表5-1创建应用参考内容选项填写内容应用名称语音助手接口选择默认无需更改语音包名不需要应用归属个人应用描述语音识别和语音合成实操实验图5-20创建应用及应用查看创建应用后,点击该应用,可进入“应用详情”查看应用内容,这里需要记录“APIKey”和“SecretKey”,在后面程序中使用。在应用详情界面还可以点击“查看文档”,查看百度提供的帮助文件,以及接口调用说明以及Demo示例代码,如图5-20。步骤三:修改asr_raw.py文件中的“APIKey”和“SecretKey”查看项目代码包,本任务使用“asr_raw.py”和“语音识别.ipynb”两个程序文件。其中“asr_raw.py”是调用百度语音识别接口示例文件,需要将文件中的“APIKey”和“SecretKey”替换为自己创建应用中的字符串,在第30、31行,如图5-21所示。图5-21替换“APIKey”和“SecretKey”步骤四:识别录音内容用“JupyterNotebook”打开“语音识别.ipynb”文件,程序内容包括导入依赖包、录音5s、保存文件、识别录音、打印录音结果。#导入依赖包importasr_rawasar#百度语音识别包fromRecordPlayimportrecorder#录音包#录音5s,保存音频到test.wav文件r=recorder()r.recorder("test.wav")#识别录音结果result_str=ar.Voice2Text("test.wav")#识别语音#打印录音结果print("语音识别结果="+result_str)#打印识别结果运行代码,对着电脑mic说“百度语音识别接口测试”,结果如图5-22所示。图5-22录音识别结果任务三语音合成“短文本在线合成”免费技能资源已经在任务二中领取,所以无需重新领取资源和创建应用。步骤一:修改“APIKey”和“SecretKey”查看项目代码包,本任务使用“tts.py”和“语音合成播放.ipynb”两个程序文件。其中“tts.py”是调用百度语音合成接口示例文件,需要将文件中的“APIKey”和“SecretKey”替换为自己创建应用中的字符串,在第20、21行,如图5-23所示。图5-23程序需修改位置步骤二:语音合成并播放打开“语音合成播放.ipynb”文件,主要内容包括导入依赖包、定义合成内容、语音合成、播放识别音频。运行程序,电脑会播放“text”字符串的内容。#导入依赖包importttsastts#百度语音合成包fromRecordPlayimportrecorder#录音包#需要语音合成的内容text="今天天气真好!"#语音合成file=tts.Text2Voice(text)#播放语音文件r=recorder()r.playwav(file)任务四实现语音助手通过任务一、二、三分别实现音频的录音与播放、语音识别、语音合成等功能,下面我们根据5-16的流程图,将几个任务的代码模块集成起来,中间加上“命令解析与执行”代码模块,完成完整的智能语音助理功能。查看项目代码包,运行本任务对应的程序文件“智能语音助理.ipynb”,代码及注释如下:#导入依赖包importasr_rawasar#百度语音识别包importttsastts#百度语音合成包fromRecordPlayimportrecorder#录音和播放函数importos#标准os库#录音5s,保存音频到test.wav文件r=recorder()r.recorder("test.wav")#识别语音内容,并打印result_str=ar.Voice2Text("test.wav")print("语音识别结果="+result_str)#打印识别结果#判断识别文本内容,并执行相应的操作if"打开计算器"inresult_str:os.startfile("calc.exe")text="主人,已经打开计算器。"elif"打开记事本"inresult_str:os.startfile("notepad.exe")text="主人,已经打开记事本。"elif"打开画图板"inresult_str:os.startfile("mspaint.exe")text="主人,已经打开画图板。"elif"你的名字"inresult_str:text="我的名字是***的助手。"else:text="对不起,我还不能理解这个任务!"#语音合成file=tts.Text2Voice(text)#播放语音文件r.playwav(file)多次运行代码,分别说出“打开计算器”、"打开记事本"、"打开画图板",程序效果如【项目目标】小节中项目效果图5-15所示。项目总结: 本项目应用百度AI云平台实现智能语音助手功能,通过语音数据采集(录音)与播放、语音识别、语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论