最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用SpeechRecognition庫實(shí)現(xiàn)語音識別功能

 更新時(shí)間:2026年01月22日 10:09:34   作者:禿了也弱了。  
SpeechRecognition 是 Python 生態(tài)中最主流的語音識別第三方庫,它封裝了多個(gè)國內(nèi)外主流語音識別引擎的接口,本文將帶大家了解Python的SpeechRecognition庫的功能、使用方法,并通過具體案例掌握它在不同場景下的應(yīng)用,需要的朋友可以參考下

SpeechRecognition庫(待驗(yàn)證)

1、簡介

SpeechRecognition 是 Python 生態(tài)中最主流的語音識別第三方庫,它封裝了多個(gè)國內(nèi)外主流語音識別引擎的接口,讓你無需關(guān)注各引擎的底層實(shí)現(xiàn)(比如 API 簽名、數(shù)據(jù)格式轉(zhuǎn)換),只需調(diào)用簡單的 Python API 就能快速實(shí)現(xiàn) “語音轉(zhuǎn)文字” 功能。

你希望詳細(xì)了解Python的SpeechRecognition庫的功能、使用方法,并通過具體案例掌握它在不同場景下的應(yīng)用,我會從庫的基礎(chǔ)介紹、核心概念,到不同使用場景的實(shí)戰(zhàn)案例逐步講解,讓你既能理解原理,也能直接上手使用。

支持的識別引擎(按實(shí)用度排序):

引擎網(wǎng)絡(luò)要求準(zhǔn)確率費(fèi)用中文適配核心特點(diǎn)
Google Web Speech API需網(wǎng)絡(luò)免費(fèi)(非商用)較好新手首選,無需申請密鑰
百度語音識別API需網(wǎng)絡(luò)很高免費(fèi)額度充足最優(yōu)專為中文優(yōu)化,需申請密鑰
CMU Sphinx離線較低免費(fèi)一般無網(wǎng)絡(luò)場景專用
Microsoft Bing Voice需網(wǎng)絡(luò)需申請密鑰較好微軟生態(tài)適配

Recognizer 類:核心類,所有語音識別操作都通過它完成(如噪聲校準(zhǔn)、音頻識別)。
AudioData 類:封裝音頻數(shù)據(jù)(采樣率、聲道、原始數(shù)據(jù)),是識別的輸入載體。

關(guān)鍵方法:
listen():從麥克風(fēng)采集音頻(返回 AudioData)。
record():從音頻文件讀取音頻(返回 AudioData)。
recognize_google():調(diào)用 Google API 識別音頻。
recognize_sphinx():調(diào)用 CMU Sphinx 離線識別。

2、安裝

# 1、核心庫安裝
pip install SpeechRecognition

# 2、該庫處理麥克風(fēng)實(shí)時(shí)語音需要依賴`PyAudio`:
pip install pyaudio
# 若安裝失?。╓indows 常見):先下載對應(yīng) Python 版本的PyAudio whl 文件(Unofficial Windows Binaries),再本地安裝
pip install PyAudio-0.2.13-cp310-cp310-win_amd64.whl

# 3、Mac 用戶:先裝底層依賴再裝 PyAudio
brew install portaudio
pip install pyaudio

# 4、若需離線識別,額外安裝
pip install pocketsphinx

3、使用

場景1:實(shí)時(shí)麥克風(fēng)語音識別(最常用,如語音助手)

通過麥克風(fēng)實(shí)時(shí)采集你的語音,轉(zhuǎn)成文字輸出。
需先校準(zhǔn)環(huán)境噪聲(否則會把背景音誤識別)。

import speech_recognition as sr

def microphone_recognition():
    # 1. 創(chuàng)建Recognizer實(shí)例
    r = sr.Recognizer()
    
    # 2. 獲取麥克風(fēng)設(shè)備(默認(rèn)麥克風(fēng))
    with sr.Microphone() as source:
        print("正在校準(zhǔn)環(huán)境噪聲,請保持安靜...")
        # 校準(zhǔn)噪聲:監(jiān)聽1秒,獲取背景噪聲水平(關(guān)鍵步驟,否則識別準(zhǔn)確率低)
        r.adjust_for_ambient_noise(source, duration=1)
        print("校準(zhǔn)完成,請開始說話(說完后會自動識別)...")
        
        # 3. 監(jiān)聽麥克風(fēng)音頻(timeout=5表示5秒內(nèi)無語音則超時(shí))
        audio = r.listen(source, timeout=5, phrase_time_limit=10)  # phrase_time_limit限制單次語音最長10秒
    
    # 4. 調(diào)用Google API識別語音
    try:
        print("正在識別...")
        # language="zh-CN"指定中文識別,默認(rèn)是英文
        # 若識別英文可改為`language="en-US"`。
        text = r.recognize_google(audio, language="zh-CN")
        print(f"你說的內(nèi)容:{text}")
    except sr.WaitTimeoutError:
        print("錯(cuò)誤:超過5秒未檢測到語音輸入")
    except sr.UnknownValueError:
        print("錯(cuò)誤:無法識別你說的內(nèi)容(語音模糊/無有效語音)")
    except sr.RequestError as e:
        print(f"錯(cuò)誤:調(diào)用Google API失敗 → {e}")

if __name__ == "__main__":
    microphone_recognition()

場景2:識別本地音頻文件(如處理錄音文件)

將本地音頻文件(如wav、flac格式)轉(zhuǎn)成文字。
該庫原生支持wav、aiff、flac格式,若為mp3需先轉(zhuǎn)換(可使用pydub庫)。

import speech_recognition as sr

def audio_file_recognition(file_path):
    # 1. 創(chuàng)建Recognizer實(shí)例
    r = sr.Recognizer()
    
    # 2. 讀取音頻文件
    with sr.AudioFile(file_path) as source:
        # 讀取完整音頻(也可指定時(shí)長:r.record(source, duration=5) 讀取前5秒)
        audio = r.record(source)
    
    # 3. 識別音頻
    try:
        text = r.recognize_google(audio, language="zh-CN")
        print(f"音頻內(nèi)容:{text}")
    except sr.UnknownValueError:
        print("錯(cuò)誤:無法識別音頻內(nèi)容")
    except sr.RequestError as e:
        print(f"錯(cuò)誤:API調(diào)用失敗 → {e}")

if __name__ == "__main__":
    # 替換為你的音頻文件路徑(建議用wav格式)
    audio_file_recognition("test_audio.wav")

擴(kuò)展(處理MP3)
先安裝pydub和音頻解碼依賴:

pip install pydub
# Windows需下載ffmpeg并配置環(huán)境變量,Mac:brew install ffmpeg

轉(zhuǎn)換并識別MP3的代碼:

import speech_recognition as sr
from pydub import AudioSegment

# 轉(zhuǎn)換MP3為WAV
audio = AudioSegment.from_mp3("test_audio.mp3")
audio.export("test_audio_wav.wav", format="wav")

# 調(diào)用上面的識別函數(shù)
audio_file_recognition("test_audio_wav.wav")

場景3:離線語音識別(CMU Sphinx)

無網(wǎng)絡(luò)時(shí)識別語音(適合嵌入式設(shè)備、無網(wǎng)絡(luò)場景)。
準(zhǔn)確率遠(yuǎn)低于在線API,中文適配差,建議僅用于應(yīng)急場景。

import speech_recognition as sr

def offline_recognition():
    r = sr.Recognizer()
    with sr.Microphone() as source:
        r.adjust_for_ambient_noise(source, duration=1)
        print("離線模式,請說話...")
        audio = r.listen(source)
    
    try:
        # 離線識別(中文需額外配置語言包,默認(rèn)英文)
        text = r.recognize_sphinx(audio, language="zh-CN")
        print(f"離線識別結(jié)果:{text}")
    except sr.UnknownValueError:
        print("錯(cuò)誤:離線識別失?。ㄕZ音無法解析)")
    except sr.RequestError as e:
        print(f"錯(cuò)誤:Sphinx引擎初始化失敗 → {e}")

if __name__ == "__main__":
    offline_recognition()

場景4:百度語音識別(中文最優(yōu))

使用百度語音API識別(中文準(zhǔn)確率遠(yuǎn)超Google,有免費(fèi)額度)。

前置步驟:
1.登錄百度智能云,創(chuàng)建“語音識別”應(yīng)用,獲取APP_ID、API_KEY、SECRET_KEY
2.安裝百度SDK:

   pip install baidu-aip
import speech_recognition as sr
from aip import AipSpeech

# 替換為你的百度應(yīng)用信息
APP_ID = "你的APP_ID"
API_KEY = "你的API_KEY"
SECRET_KEY = "你的SECRET_KEY"

def baidu_recognition(audio_data):
    # 初始化百度語音客戶端
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    
    # 將AudioData轉(zhuǎn)為百度要求的格式(pcm/16k/16位/單聲道)
    pcm_data = audio_data.get_raw_data(convert_rate=16000, convert_width=2)
    
    # 調(diào)用百度API識別
    result = client.asr(pcm_data, "pcm", 16000, {
        "dev_pid": 1536,  # 1536=普通話(支持簡單的英文),1537=英語
    })
    
    if result["err_no"] == 0:
        return "".join(result["result"])
    else:
        raise Exception(f"百度API錯(cuò)誤:{result['err_msg']}")

# 主流程:麥克風(fēng)采集+百度識別
if __name__ == "__main__":
    r = sr.Recognizer()
    with sr.Microphone(sample_rate=16000) as source:  # 百度要求16k采樣率
        r.adjust_for_ambient_noise(source, duration=1)
        print("請說話(百度語音識別)...")
        audio = r.listen(source)
    
    try:
        text = baidu_recognition(audio)
        print(f"百度識別結(jié)果:{text}")
    except Exception as e:
        print(f"識別失敗:{e}")

以上就是Python使用SpeechRecognition庫實(shí)現(xiàn)語音識別功能的詳細(xì)內(nèi)容,更多關(guān)于Python SpeechRecognition語音識別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

根河市| 花垣县| 松潘县| 即墨市| 乳源| 永定县| 水富县| 桓仁| 应用必备| 平陆县| 满洲里市| 遂川县| 沛县| 波密县| 搜索| 紫金县| 大洼县| 望谟县| 建阳市| 定日县| 平顶山市| 阿巴嘎旗| 平昌县| 探索| 嘉荫县| 汉川市| 屏边| 政和县| 桂平市| 承德市| 商城县| 米脂县| 靖宇县| 云霄县| 华蓥市| 永寿县| 马边| 于田县| 德昌县| 绥阳县| 宣恩县|