《自拍教程79》榮耀V20,通過Python實現自動化語音測試
阿新 • • 發佈:2021-01-26
技術標籤:案例篇#移動終端相關案例python人工智慧baidu-aip自拍教程語音識別
案例故事:
智慧語音識別技術VR(Voice Recognition)越來越流行,比如siri,小米的小愛同學,
訊飛的車載語音,華為的你好yoyo,這類的應用已經非常廣泛了,
為了測試智慧語音模組,我們需要進行很多喚醒詞和語料的輸入,
這塊如何實現自動化測試呢?
其關鍵就是如何將文字(語料集)轉成語音,實現TTS:( Text To Speech文字轉語音),最終實現模擬語音輸入!
百度AI TTS雲服務介紹:
要實現text to 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
也可關注“武散人”微信訂閱號,隨時接受文章推送。