1. 程式人生 > 其它 >《自拍教程79》榮耀V20,通過Python實現自動化語音測試

《自拍教程79》榮耀V20,通過Python實現自動化語音測試

技術標籤:案例篇#移動終端相關案例python人工智慧baidu-aip自拍教程語音識別

案例故事:
智慧語音識別技術VR(Voice Recognition)越來越流行,比如siri,小米的小愛同學,
訊飛的車載語音,華為的你好yoyo,這類的應用已經非常廣泛了,
為了測試智慧語音模組,我們需要進行很多喚醒詞和語料的輸入,
這塊如何實現自動化測試呢?
其關鍵就是如何將文字(語料集)轉成語音,實現TTS:( Text To Speech文字轉語音),最終實現模擬語音輸入!

百度AI TTS雲服務介紹:

要實現text to speech,是個很龐大的引擎,需要解決很多常用詞,多音詞,方言等等問題,

所以百度提供了雲端計算介面: 進行text輸入,雲端反饋speech輸出。

Baidu aip建立TTS、ASR應用許可並申請免費試用

喚醒和識別

先進行喚醒,再進入識別對話模式,
喚醒的喚醒詞是需要進行自學習的,這部分建議用自學習過的錄音檔案代替。
自學習的具體流程如截圖(以榮耀V20手機為例)
進入識別對話模式後,則可以通過百度TTS雲服務自動化進行語音輸入!


準備階段
  1. pip install baidu-aip 百度AI SDK
  2. pip install playsound 播放音訊檔案
  3. 準備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")

執行方式與效果
  1. 準備好當前裝置的喚醒詞檔案wakeup.mp3
  2. 確保自學習順利完成(即後續電腦端播放wakeup.mp3,即可立馬喚醒手機)
  3. 儘量找個安靜的環境執行以上指令碼,
  4. 儲存以上程式碼為“vr_tts.py", cmd執行"python vr_tts.py"
  5. 簡短的視訊效果請檢視原文連結

更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測試Python教程,武散人編著)
原文連結:https://www.zipython.com/#/detail?id=e72446ad65f84d3482821d37e6d37820
也可關注“武散人”微信訂閱號,隨時接受文章推送。