相关题目
4.通过调用云小微语音识别 API 并查看有关语音识别 API 相关文档,上传音频,完成语音识别,并将识别完成的文本信息进行输出显示。(云小微语音识别 API相关文档:(https://kael.tvs.qq.com/ability/latest/2))。
第一步:定义请求参数#导入所需要的包import requests
import json
from requests_toolbelt import MultipartEncoder filepath="D:/test.mp3" #需要更换为绝对路径print("测试文件绝对路径:"+filepath)
print("识别模式:一次性识别")
url = 'https://gwgray.tvs.qq.com/ai/asr' headers = {
# 'Appkey':'fbe6ed2041ea11eb8e83793e0d29e1dd',
'Appkey':'fa344ca04d8611eb93763d03417560a2',
'Content-Type':'multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxk
TrZu0gW'
}
payload = json.dumps({ #json.dumps() 是把 python 对象转换成 json 对象的一个过程,生成的是字符串
"header":{ }, "payload":{
"audioMeta": {
"format": "mp3",# 音频格式: pcm/wav/amr/opus/mp3 "sampleRate": "8K", # 采样率: 8K/16K
"channel": 1,# 音频通道数: 1/2
"lang": "zh-CN"# 语言类型, 中文: zh-CN, 英文: en-US
},
"offset": 0,# 语音片在语音流中的偏移"needPunc": True,# 是否加标点
"transNum": True,# 是否开启文字转数字, 如一二三 to 123 "useCloudVad": True,# 是否使用云端 vad, 由云端来停止语音,调用方不用
第 25 页 共 29 页
发送 'finished'
"vadThreshold": 500,# 云端 vad 静音阈值, 建议设置 500, 单位 ms "finished":True# 语音是否结束
}
})
第二步:封装请求数据
data = MultipartEncoder(
fields={
"audio":('filename', open(filepath, 'rb'), 'audio/mp3'), "metadata":("metadata",payload, 'application/json; charset=utf8'),
},boundary="----WebKitFormBoundary7MA4YWxkTrZu0gW"
)
第三步:发送请求
r = requests.post(url,data=data,headers=headers)
第四步:运行代码,效果如图 4-10 所示。
print("识别到的文字:"+json.loads(r.text)["payload"]["text"])# 是将字符串传化为字典
3.使用 Adobe Audition 录制一段语音,语音内容为“独在异乡为异客,每逢佳节倍思亲。遥知兄弟登高处,遍插茱萸少一人。”,录制完成后再使用 Adobe Audition 对整段音频进行降噪操作,将音频另存为到桌面,再使用 Praat 对音频进行标注,要标注出说话人的性别,说话内容以及说话人的情绪这三层的内容并保存。
第一步:进入 Adobe Audition 主界面,点击左上角“文件”菜单选择“新建”子菜单项,然后选择“音频文件”项,如图所示。
第 15 页 共 29 页
第二步:弹出录音属性值窗口,如图所示,这里我们可以根据实际需要选择合适的参数。
第三步:点击图中框标记处的红色按钮,即开始录音,录制“独在异乡为异客,每逢佳节倍思亲。遥知兄弟登高处,遍插茱萸少一人”。如果要停止录音的的话,可以再次点击此按钮。
第 16 页 共 29 页
图 3-16 录音开始停止按钮
第四步:点击图中红框处“播放”和“暂停”按钮,查看录音效果。
第五步:观察波形图,可以看到在两个大的波幅之间,原本应该是没声音的,但还是存在那种振幅不大的小波形,这就是环境噪音的波形。
第 17 页 共 29 页
第三步:选取噪声以后,点击“效果”菜单项“降噪/恢复(N)”子菜单项中
的“捕捉噪声样本(B)”,如图所示。
第四步:点击后,会发现画面一闪,再没有变化。这时候选取需要降噪的区域(这里全选,整段音频都需要降噪),如图所示。
第 18 页 共 29 页
第五步:打开“效果”菜单项“降噪(N)/恢复”子菜单项中“降噪处理(N)”,如图所示。
第六步:进入降噪窗口,如图所示,将降噪数值设定在 75%。(不要一次降噪太多,声音容易失真,一般选择 70%左右即可。如果效果不好,可多次降噪,
第 19 页 共 29 页
但每次都需要重新捕捉噪声样本;如果失真太多,可调整降噪数值。)点击“应用”。
第七步:处理完毕后,会得到一个“瘦身”的波形图,如图所示,和之前的波形图对比,可以很明显看出两段大波形之间的小波形被过滤掉大部分。
第 20 页 共 29 页
第八步:完毕后,点击“文件”菜单项“另存为”子菜单项,弹出如图所示窗口,填写文件名为“降噪”,选择存储位置,然后点击“确定”,这样,降噪过程就完成了。
第九步:双击启动 Praat,可以看到两个窗口,对于本实验,不需要使用 Praat
Picture 窗口,点击关闭即可,只保留 Praat Objects 窗口,如图所示。
第十步:点击“Open->Read from file...”,选择刚才保存的要标注的语音文件,并打开,可以看到在“Objects”列表中出现了“1.Sound test”,点击右侧“Annotate”按钮,选择“To TextGrid”,如图所示。
第 21 页 共 29 页
第十一步:弹出“Sound:To TextGrid”窗口,在“All tier names:”栏中输入要进行语音标注的层的名字。在进行语音标注时,往往要对一段语音标注出不同层次的信息,这里我们分三层,分别是说话人的性别,说话内容以及说话人的情绪,不同层名之间用半角空格间隔,删除“Which of these are point tiers?”栏中的内容,点击“OK”按钮,如图所示。
第十二步:点击“OK”,在“Praat Objects”窗口的“Objects”列表中将会出现“2.TextGrid test”列表项,按住键盘上的“Ctrl”键,用鼠标同时选中“1.Sound test”和“2.TextGrid test”项,并点击右侧“View & Edit”按钮,打开“TextGrid”窗口,如图所示。
第 22 页 共 29 页
第十三步:打开“2.TextGrid test”窗口,可以看到导入的语音波形信息及标注相关的控件及组件,如图所示。
第十四步:将鼠标移动到语音波形或分析的相应位置,这时会出现一条虚线,并在每一层上方出现一个小圆圈,点击相应的小圆圈即可添加一条时间边界。选择波形中的一段语音,每个时间段的长度一般不超过 8 秒,也不能太短,要根据说话的人物及内容进行合理的分隔。在该段语音的前后在每一层分别添加时间边界。分隔后,就可以在相应的层上输入标注相关信息,如图所示。如果要删除刚添加的时间边界,可以按下组合键“Alt”+“backspace”键。
第 23 页 共 29 页
第十五步:在完成对语音的标注后,就可以按下“Ctrl”+“s”键将标注数据保存为扩展名为“TextGrid”的文件。用记事本打开该文件,可以看到如图所示内容。
第 24 页 共 29 页
2.使用 Python 编写程序,打印输出九九乘法表。(运行结果正确即可,代码内
容可以不一样)
for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d"%(j,i,j*i),end=' ')
print("")
0.0.0.0。应用发布完毕后,可直接在“天气预报”界面的右侧进行快速体验,可以提问几个问题,例如:“北京天气怎么样?”、“北京今天会下雨吗?”。
第一步:登录腾迅云小微平台登陆账号,在设备平台中点击新建应用。
第二步:应用名称为“天气预报”,添加应用描述,应用场景为家电,应用方案为通用方案,设备类型选择有屏设备,最后点击完成。
第 12 页 共 29 页
第三步:点击完成后,会弹出创建成功的提示框,点击前往配置。
第四步:点击前往配置后,此时进入到我们创建应用的版本管理当中,点击配置选项。
第五步:进入配置界面后可以看到应用包含的一些内置技能,我们也可以通过点击右上方的从自建技能库导入或者从公开技能库导入来导入此应用所需的技能,此应用为天气预报,可以看到在内置技能中就包含天气预报技能,所以我们可以不再去添加其他技能直接点击保存即可。
第 13 页 共 29 页
第六步:保存成功后,天气预报应用就已经配置好了,我们可以在右侧的快速体验区域输入几个问题并查看回复的结果。
第 14 页 共 29 页
1.在云小微设备平台上创建一个使用在有屏家电场景中的的应用,应用方案为通用方案,名称为“天气预报”,具有查询各个城市天气情况的功能,版本号为
5.简述什么是语音合成波形拼接法和参数合成法。
波形拼接法:前期构建由大量语音数据组成的语音数据库,当我们输入文本的时候,首先要对文本的拼音信息和韵律结构信息进行分析,之后需要到构建好的语音库中寻找适当的子单词单元,然后将这些单元进行拼接,这样就形成了语音输出。
参数合成法:参数语音合成技术主要通过数据来训练模型,使模型能够从数据集中学习从文本到声学参数的映射函数,生成参数合成器。所以当输入一个文本时,先将文本序列映射出对应的音频特征,再通过声学模型(声码器)将音频特征转化为我们听得懂的声音。
第 11 页 共 29 页
4.简述软件测试的目的和意义。
目的:主要是为了发现并指出问题
意义:可以发现软件中潜在的各种错误和缺陷,通过修正这些错误和缺陷,避免软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险
3.简述 TF-IDF 表示的含义,以及 TF、IDF 分别表示的含义。
TF-IDF 主要用来评估一个词语在一份语料库中对于其中一份文件的重要程度。词语的重要性会随着它在该文件中出现的次数而增加,但是也会同时随着它在语料库中其他文件出现的次数而减少。
TF 表示“单词频率”,是一个查询关键字中某一个单词在目标文档中出现的次数
2.简述 break 语句和 continue 语句两者的区别。
第 10 页 共 29 页
break 语句跳出整个循环体,循环体中未执行的循环将不会执行。continue 语句是跳出本次循环,继续进行下一次的循环。
1.简述一个完整的对话机器人框架所包含的五个模块各自的作用。
语音识别技术:将语音转换成文本信息
自然语言理解:将识别出来的文本信息转换成机器可以理解的语义表示
对话管理:根据自然语言理解输出的语义表示执行对话状态的更新和追踪,并根
据一定策略选择相应的候选动作
自然语言生成:负责生成需要恢复给用户的自然语言文本
