《自拍教程79》Python 百度ai實現自動化tts語音輸入

案例故事:
智能語音識別技術VR(Voice Recognition)愈來愈流行,好比siri,小米的小愛同窗,
訊飛的車載語音,華爲的你好yoyo,這類的應用已經很是普遍了,
爲了測試智能語音模塊,咱們須要進行不少喚醒詞和語料的輸入,
這塊如何實現自動化測試呢?
其關鍵就是如何將文字(語料集)轉成語音,實現TTS:( Text To Speech文字轉語音),最終實現模擬語音輸入!

python

百度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
也可關注「武散人」微信訂閱號,隨時接受文章推送。
測試

相關文章
相關標籤/搜索