You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/hk/6-consumer/lessons/1-speech-recognition/virtual-device-speech-to-te...

4.9 KiB

語音轉文字 - 虛擬物聯網裝置

在這部分課程中,你將撰寫程式碼,使用語音服務將從麥克風捕捉到的語音轉換為文字。

語音轉文字

在 Windows、Linux 和 macOS 上,可以使用語音服務的 Python SDK 來監聽你的麥克風,並將檢測到的語音轉換為文字。它會持續監聽,檢測音量水平,並在音量下降時(例如在一段語音結束時)將語音發送進行文字轉換。

任務 - 將語音轉換為文字

  1. 在你的電腦上建立一個名為 smart-timer 的資料夾,並在其中建立一個名為 app.py 的 Python 應用程式,以及一個 Python 虛擬環境。

  2. 安裝語音服務的 Pip 套件。確保你是在啟動虛擬環境的終端中進行安裝。

    pip install azure-cognitiveservices-speech
    

    ⚠️ 如果你遇到以下錯誤:

    ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech (from versions: none)
    ERROR: No matching distribution found for azure-cognitiveservices-speech
    

    你需要更新 Pip。使用以下指令更新然後再次嘗試安裝套件

    pip install --upgrade pip
    
  3. app.py 文件中加入以下匯入:

    import requests
    import time
    from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer
    

    這些匯入了一些用於語音識別的類別。

  4. 加入以下程式碼來宣告一些配置:

    speech_api_key = '<key>'
    location = '<location>'
    language = '<language>'
    
    recognizer_config = SpeechConfig(subscription=speech_api_key,
                                     region=location,
                                     speech_recognition_language=language)
    

    <key> 替換為你的語音服務的 API 金鑰。將 <location> 替換為你建立語音服務資源時使用的位置。

    <language> 替換為你將使用的語言的地區名稱,例如英語使用 en-GB,或粵語使用 zn-HK。你可以在 Microsoft Docs 的語言和語音支援文件 中找到支援的語言及其地區名稱列表。

    此配置將用於建立一個 SpeechConfig 物件,用來配置語音服務。

  5. 加入以下程式碼來建立語音識別器:

    recognizer = SpeechRecognizer(speech_config=recognizer_config)
    
  6. 語音識別器在背景執行緒上運行,監聽音頻並將其中的語音轉換為文字。你可以使用回調函數來獲取文字——定義一個函數並傳遞給識別器。每次檢測到語音時,回調函數都會被調用。加入以下程式碼來定義回調函數,並將此回調函數傳遞給識別器,同時定義一個函數來處理文字,將其輸出到控制台:

    def process_text(text):
        print(text)
    
    def recognized(args):
        process_text(args.result.text)
    
    recognizer.recognized.connect(recognized)
    
  7. 識別器只有在你明確啟動時才會開始監聽。加入以下程式碼來啟動識別。這會在背景執行,因此你的應用程式還需要一個無限迴圈,讓應用程式保持運行。

    recognizer.start_continuous_recognition()
    
    while True:
        time.sleep(1)
    
  8. 運行此應用程式。對著你的麥克風說話,轉換為文字的音頻將輸出到控制台。

    (.venv) ➜  smart-timer python3 app.py
    Hello world.
    Welcome to IoT for beginners.
    

    嘗試不同類型的句子以及一些詞語發音相同但意思不同的句子。例如如果你使用英語可以說「I want to buy two bananas and an apple too」並注意它如何根據詞語的上下文使用正確的 to、two 和 too而不僅僅是根據它的發音。

💁 你可以在 code-speech-to-text/virtual-iot-device 資料夾中找到這段程式碼。

😀 你的語音轉文字程式成功了!


免責聲明
本文件已使用人工智能翻譯服務 Co-op Translator 進行翻譯。儘管我們致力於提供準確的翻譯,請注意自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為具權威性的來源。對於重要資訊,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。