🚀 法語語音轉音素微調模型
本項目是一個針對法語語音轉音素任務微調的模型,它基於 facebook/wav2vec2-base-fr-voxpopuli-v2 模型,使用 Common Voice v13 的訓練集和驗證集進行微調。該模型能夠將法語語音轉換為音素序列,為語音處理相關任務提供了有力支持。
🚀 快速開始
音頻採樣率要求
使用此模型時,請確保語音輸入的採樣率為 16kHz。
輸出格式
由於該模型是專門為語音轉音素任務訓練的,其輸出是 國際音標(IPA)編碼 的單詞序列,且不包含標點符號。如果您不熟悉音標,可以使用 IPA 閱讀器網站 將轉錄結果轉換為合成語音,以檢查音素轉錄的質量。
✨ 主要特性
- 特定任務微調:針對法語語音轉音素任務進行了微調,提高了在該任務上的性能。
- 多數據集驗證:在多個數據集上進行了測試,如 Common Voice v13 和 Multilingual Librispeech,表現良好。
📦 安裝指南
文檔未提供具體安裝步驟,暫不展示。
💻 使用示例
基礎用法(使用在線推理 API)
在本網頁的 ⚡ 推理 API 上錄製您的語音,然後點擊“計算”即可。
高級用法(使用 HuggingSound 庫)
該模型可以直接使用 HuggingSound 庫進行調用:
import pandas as pd
from huggingsound import SpeechRecognitionModel
model = SpeechRecognitionModel("Cnam-LMSSC/wav2vec2-french-phonemizer")
audio_paths = ["./test_relecture_texte.wav", "./10179_11051_000021.flac"]
transcriptions = model.transcribe(audio_paths)
df = pd.DataFrame(transcriptions)
df['Audio file'] = pd.DataFrame(audio_paths)
df.set_index('Audio file', inplace=True)
df[['transcription']]
輸出 :
音頻文件 |
音標轉錄結果 (IPA) |
./test_relecture_texte.wav |
ʃapitʁ di də abɛse pəti kɔ̃t də ʒyl ləmɛtʁ ɑ̃ʁʒistʁe puʁ libʁivɔksɔʁɡ ibis dɑ̃ la bas kuʁ dœ̃ ʃato sə tʁuva paʁmi tut sɔʁt də volaj œ̃n ibis ʁɔz |
./10179_11051_000021.flac |
kɛl dɔmaʒ kə sə nə swa pa dy sykʁ supiʁa se foʁaz ɑ̃ pasɑ̃ sa lɑ̃ɡ syʁ la vitʁ fɛ̃ dy ʃapitʁ kɛ̃z ɑ̃ʁʒistʁe paʁ sonjɛ̃ sɛt ɑ̃ʁʒistʁəmɑ̃ fɛ paʁti dy domɛn pyblik |
高級用法(不使用 huggingsound 庫的推理腳本)
import torch
from transformers import AutoModelForCTC, Wav2Vec2Processor
from datasets import load_dataset
import soundfile as sf
MODEL_ID = "Cnam-LMSSC/wav2vec2-french-phonemizer"
model = AutoModelForCTC.from_pretrained(MODEL_ID)
processor = Wav2Vec2Processor.from_pretrained(MODEL_ID)
audio = sf.read('example.wav')
inputs = processor(np.array(audio[0]),sampling_rate=16_000., return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
predicted_ids = torch.argmax(logits,dim = -1)
transcription = processor.batch_decode(predicted_ids)
print("音標轉錄結果 : ", transcription)
輸出 :
'ʒə syi tʁɛ kɔ̃tɑ̃ də vu pʁezɑ̃te notʁ solysjɔ̃ puʁ fonomize dez odjo fasilmɑ̃ sa fɔ̃ksjɔn kɑ̃ mɛm tʁɛ bjɛ̃'
📚 詳細文檔
訓練過程
該模型在 Cnam/LMMSC 的 4x2080 Ti GPU 上使用 ddp 策略和梯度累積過程,在 Commonvoice-v13 (FR) 上進行了 14 個 epoch 的微調(每次更新處理 256 個音頻,大約相當於每次更新處理 25 分鐘的語音,即每個 epoch 進行 2000 次更新)。
- 學習率調度:雙三態調度
- 在前 7% 的總更新次數中,從 1e-5 進行熱身。
- 在 28% 的總更新次數中,保持在 1e-4 不變。
- 在 36% 的總更新次數中,線性下降到 1e-6。
- 在 3% 的總更新次數中,第二次熱身提升到 3e-5。
- 在 12% 的總更新次數中,保持在 3e-5 不變。
- 在剩餘的 14% 更新次數中,線性下降到 1e-7。
- 訓練超參數:使用的超參數集與 wav2vec2 論文 附錄 B 和表 6 中詳細描述的相同。
測試結果
下表展示了該模型在 Common Voice 和 Multilingual Librispeech(當然,兩個數據集都使用法語配置)上的音素錯誤率(PER),模型僅在 Common Voice 訓練集上進行了微調:
模型 |
測試集 |
PER |
Cnam-LMSSC/wav2vec2-french-phonemizer |
Common Voice v13 (法語) |
5.52% |
Cnam-LMSSC/wav2vec2-french-phonemizer |
Multilingual Librispeech (法語) |
4.36% |
🔧 技術細節
模型信息
📄 許可證
本模型使用 MIT 許可證。
📖 引用
如果您在任何出版物中使用了這個微調模型,請使用以下 BibTeX 引用我們的工作:
@misc {lmssc-wav2vec2-base-phonemizer-french_2023,
author = { Olivier, Malo AND Hauret, Julien AND Bavu, {É}ric },
title = { wav2vec2-french-phonemizer (Revision e715906) },
year = 2023,
url = { https://huggingface.co/Cnam-LMSSC/wav2vec2-french-phonemizer },
doi = { 10.57967/hf/1339 },
publisher = { Hugging Face }
}