音訊課程文件

使用流水線進行自動語音識別

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

使用流水線進行自動語音識別

自動語音識別(ASR)是一項將語音音訊記錄轉錄為文字的任務。這項任務具有許多實際應用,從為影片建立字幕到為Siri和Alexa等虛擬助手啟用語音命令。

在本節中,我們將使用 automatic-speech-recognition 流水線來轉錄一段關於某人詢問如何支付賬單的音訊記錄,使用與之前相同的 MINDS-14 資料集。

首先,如果尚未完成,請載入資料集並將其取樣率提高到16kHz,如使用流水線進行音訊分類中所述。

要轉錄音訊記錄,我們可以使用 🤗 Transformers 中的 automatic-speech-recognition 流水線。讓我們例項化該流水線

from transformers import pipeline

asr = pipeline("automatic-speech-recognition")

接下來,我們將從資料集中取一個示例,並將其原始資料傳遞給流水線

example = minds[0]
asr(example["audio"]["array"])

輸出

{"text": "I WOULD LIKE TO PAY MY ELECTRICITY BILL USING MY COD CAN YOU PLEASE ASSIST"}

讓我們將此輸出與該示例的實際轉錄進行比較

example["english_transcription"]

輸出

"I would like to pay my electricity bill using my card can you please assist"

該模型似乎在轉錄音訊方面做得相當好!與原始轉錄相比,它只錯了一個詞(“card”),考慮到說話者有澳大利亞口音,其中字母“r”通常是無聲的,這已經相當不錯了。話雖如此,我不會建議你下次用魚來支付電費!

預設情況下,此流水線使用經過英語自動語音識別訓練的模型,這在本示例中是合適的。如果您想嘗試轉錄 MINDS-14 的其他子集中的不同語言,您可以在🤗 Hub上找到預訓練的 ASR 模型。您可以先按任務篩選模型列表,然後按語言篩選。找到您喜歡的模型後,將其名稱作為 model 引數傳遞給流水線。

讓我們嘗試在 MINDS-14 的德語部分進行此操作。載入“de-DE”子集

from datasets import load_dataset
from datasets import Audio

minds = load_dataset("PolyAI/minds14", name="de-DE", split="train")
minds = minds.cast_column("audio", Audio(sampling_rate=16_000))

獲取一個示例,看看轉錄應該是什麼

example = minds[0]
example["transcription"]

輸出

"ich möchte gerne Geld auf mein Konto einzahlen"

在 🤗 Hub 上找到一個預訓練的德語 ASR 模型,例項化一個流水線,並轉錄該示例

from transformers import pipeline

asr = pipeline("automatic-speech-recognition", model="maxidl/wav2vec2-large-xlsr-german")
asr(example["audio"]["array"])

輸出

{"text": "ich möchte gerne geld auf mein konto einzallen"}

所以,沒錯!

當您嘗試解決自己的任務時,從本單元中展示的簡單流水線開始是一個有價值的工具,它具有以下幾個優點:

  • 可能存在一個預訓練模型,它已經很好地解決了您的任務,從而節省了您大量時間
  • pipeline() 會為您處理所有預處理/後處理,因此您無需擔心將資料轉換為模型所需的正確格式
  • 如果結果不理想,這仍然為您未來的微調提供了一個快速基線
  • 一旦您在自定義資料上微調了模型並將其共享到 Hub,整個社群將能夠透過 pipeline() 方法快速輕鬆地使用它,從而使 AI 更易於訪問。
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.