Day02 語音識別 Speech Recognition


🟡 先看看程式的效果

這個程式主要用於錄製音頻並將其轉換為文字。它首先錄製一段音頻, 然後使用語音識別技術將錄製的音頻轉換為文字。這對於需要將語音內容轉換為文字的應用場景非常有用, 如語音筆記、語音命令等。

This program is primarily used to record audio and convert it into text. It first records a segment of audio, then uses speech recognition technology to convert the recorded audio into text. This is particularly useful for applications that require converting spoken content into written text, such as voice notes and voice commands.


🟡 學習目標

學習語音識別技術, 編寫能將錄製音頻轉換為文字的 Python 程式。


🟡 程式碼

請先下載 “Speech Recognition 語音識別.py”
請按此下載

'''

Python + AI in 21 days
https://jasonworkshop.com/python

Designed by Jason Workshop

[請勿修改以上內容]

---

預備工作:

首先,請確保已安裝 sounddevice, soundfile, speechrecognition 這三個模組
如不確定可直接在 Windows 的 cmd prompt 執行以下指定
pip install sounddevice soundfile speechrecognition

'''

import sounddevice as sd
import soundfile as sf
import speech_recognition as sr


# 錄製音頻並保存到指定文件
def record_audio(filename, duration, fs):
    print("開始錄音...")
    recording = sd.rec(int(duration * fs), samplerate=fs, channels=2) # 錄音,指定時長、取樣率與聲道數
    sd.wait() # 等待錄音完成
    sf.write(filename, recording, fs) # 保存錄音到文件
    print("錄音完成,已保存到文件:" + filename)


# 從音頻文件中識別語音並返回文字
def recognize_speech_from_file(filename):
    # 初始化語音識別器
    recognizer = sr.Recognizer()

    # 打開音頻文件
    with sr.AudioFile(filename) as source:
        audio = recognizer.record(source) # 讀取整個音頻文件

    try:
        # 使用 Google 語音識別將音頻轉為文字
        text = recognizer.recognize_google(audio, language="zh-TW")
        print("你說的是: " + text)
        return text
    except sr.UnknownValueError:
        print("無法識別語音")
        return None
    except sr.RequestError as e:
        print(f"無法請求語音識別服務; {e}")
        return None


if __name__ == "__main__":
    # 設定錄音的文件名、時長及取樣率
    filename = "output.wav" # 錄音的文件名
    duration = 5 # 錄音時長(秒)
    fs = 44100 # 取樣率(Hz)

    # 錄音並識別語音
    record_audio(filename, duration, fs)
    recognize_speech_from_file(filename)

🟡 小小挑戰一下

大家可以嘗試進行一些修改或改良喔! 例如:
✌️修改錄音的長度, 甚至修改成當使用者停止說話1秒便會停止錄音

😁 明天見!

按這裏回到 Python + AI 的 21 天挑戰