🚀 法语语音转音素微调模型
本项目是一个针对法语语音转音素任务微调的模型,它基于 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 }
}