案例故事:
智能语音识别技术VR(Voice Recognition)越来越流行,比如siri,小米的小爱同学,
讯飞的车载语音,华为的你好yoyo,这类的应用已经非常广泛了,
为了测试智能语音模块,我们需要进行很多唤醒词和语料的输入,
这块如何实现自动化测试呢?
其关键就是如何将文字(语料集)转成语音,实现TTS:( Text To Speech文字转语音),最终实现模拟语音输入!
百度AI TTS云服务介绍:
要实现text to speech,是个很庞大的引擎,需要解决很多常用词,多音词,方言等等问题,
所以百度提供了云计算接口: 进行text输入,云端反馈speech输出。
唤醒和识别
先进行唤醒,再进入识别对话模式,
唤醒的唤醒词是需要进行自学习的,这部分建议用自学习过的录音文件代替。
自学习的具体流程如截图(以荣耀V20手机为例)
进入识别对话模式后,则可以通过百度TTS云服务自动化进行语音输入!
准备阶段
- pip install baidu-aip 百度AI SDK
- pip install playsound 播放音频文件
- 准备1部手机,比如华为荣耀V20手机一部, 并确保完成了自学习流程!
Python面向过程函数形式
确定你需要多少个功能(函数),最好把功能(函数)都尽量封装好,只暴露一些的参数接口即可。
import os
import time
import aip
import playsound
APP_ID = '23535121'
APP_KEY = 'DwtIqobDjYLVlUnbWrswGiC9'
SECRET_KEY = 'nZxsgKcBXSNHopLLM6NaVEBW6OlMcHR1'
WAKEUP = "wakeup.mp3"
def tts(text, sleep_time=3, audio_name="audio.mp3"):
if os.path.exists(audio_name):
os.remove(audio_name) # 初始化环境
a_obj = aip.AipSpeech(APP_ID, APP_KEY, SECRET_KEY)
audio_bin = a_obj.synthesis(text, 'zh', 1, {'vol': 4, 'spd': 5, 'pit': 5, 'per': 1})
if not isinstance(audio_bin, dict):
with open(audio_name, "wb") as hf:
hf.write(audio_bin)
play(audio_name, 1)
else:
print("文本:%s TTS失败,云服务返回异常" % text)
time.sleep(sleep_time)
def play(audio_file, sleep_time=0.8):
try:
playsound.playsound(audio_file)
time.sleep(sleep_time)
except:
print("%s音频播放失败" % audio_file)
if __name__ == '__main__':
# 在线语音交互
play(WAKEUP)
tts("北京天气怎么样", 12)
play(WAKEUP)
tts("今天是星期几", 5)
play(WAKEUP)
tts("查询上证指数", 6)
play(WAKEUP)
tts("世界上最长的河", 11)
play(WAKEUP)
tts("珠穆朗玛峰有多高", 4)
play(WAKEUP)
tts("55X56等于多少", 5)
# App控制语音
play(WAKEUP)
tts("打开浏览器", 5)
play(WAKEUP)
tts("拍照", 8)
play(WAKEUP)
tts("打开日历", 7)
play(WAKEUP)
tts("发朋友圈", 5)
tts("自拍教程欢迎您!", 5)
tts("是的", 3)
play(WAKEUP)
tts("返回桌面", 5)
# 多媒体语音控制
play(WAKEUP)
tts("静音", 4)
play(WAKEUP)
tts("音量调到中等", 4)
play(WAKEUP)
tts("播放周杰伦的七里香", 8)
play(WAKEUP)
tts("下一曲", 6)
play(WAKEUP)
tts("随机播放", 7)
play(WAKEUP)
tts("我要听郭德纲的相声", 9)
# 通讯语音控制
play(WAKEUP)
tts("查询老王的电话号码")
play(WAKEUP)
tts("打电话给10086", 10)
os.system("pause")
运行方式与效果
- 准备好当前设备的唤醒词文件wakeup.mp3
- 确保自学习顺利完成(即后续电脑端播放wakeup.mp3,即可立马唤醒手机)
- 尽量找个安静的环境运行以上脚本,
- 保存以上代码为“vr_tts.py", cmd运行"python vr_tts.py"
- 简短的视频效果请查看原文链接
更多更好的原创文章,请访问官方网站:www.zipython.com
自拍教程(自动化测试Python教程,武散人编著)
原文链接:https://www.zipython.com/#/detail?id=e72446ad65f84d3482821d37e6d37820
也可关注“武散人”微信订阅号,随时接受文章推送。