这是我们在 InterSpeech 2024 上被选为口头报告的论文 LipGER: Visually-Conditioned Generative Error Correction for Robust Automatic Speech Recognition 的官方实现。
您可以从这里下载 LipHyp 数据!
pip install -r requirements.txt
首先使用以下方法准备检查点:
pip install huggingface_hub
python scripts/download.py --repo_id meta-llama/Llama-2-7b-chat-hf --token your_hf_token
python scripts/convert_hf_checkpoint.py --checkpoint_dir checkpoints/meta-llama/Llama-2-7b-chat-hf
要查看所有可用的检查点,请运行:
python scripts/download.py | grep Llama-2
更多详细信息,您还可以参考此链接,您还可以在其中为其他模型准备其他检查点。具体来说,我们使用 TinyLlama 进行实验。
检查站位于此处。下载后,在这里更改检查点的路径。
LipGER 期望所有训练、验证和测试文件采用sample_data.json 的格式。文件中的一个实例如下所示:
{
"Dataset": "dataset_name",
"Uid": "unique_id",
"Caption": "The ground truth transcription.",
"Noisy_Wav": "path_to_noisy_wav",
"Mouthroi": "path_to_mouth_roi_mp4",
"Video": "path_to_video_mp4",
"nhyps_base": [ list of N-best hypotheses ],
}
您需要将语音文件传递给经过训练的 ASR 模型,该模型能够生成 N 个最佳假设。我们在此存储库中提供了两种方法来帮助您实现这一目标。请随意使用其他方法。
pip install whisper
安装 Whisper,然后从data
文件夹运行 nhyps.py,那么您应该没问题!请注意,对于这两种方法,列表中的第一个是最佳假设,其他是 N 个最佳假设(它们作为 JSON 的列表nhyps_base
字段传递,并用于在后续步骤中构造提示)。
此外,所提供的方法仅使用语音作为输入。对于视听 N 最佳假设生成,我们使用了 Auto-AVSR。如果您需要代码方面的帮助,请提出问题!
假设您的所有语音文件都有相应的视频,请按照以下步骤从视频中裁剪嘴部 ROI。
python crop_mouth_script.py
python covert_lip.py
这会将 mp4 ROI 转换为 hdf5,代码将在同一 json 文件中将 mp4 ROI 的路径更改为 hdf5 ROI。您可以通过更改default.yaml中的“检测器”来选择“mediapipe”和“retinaface”检测器
获得 N 个最佳假设后,以所需的格式构建 JSON 文件。我们不提供这部分的具体代码,因为每个人的数据准备可能有所不同,但代码应该很简单。再次强调,如果您有任何疑问,请提出问题!
LipGER 训练脚本不采用 JSON 进行训练或评估。您需要将它们转换为 pt 文件。您可以运行convert_to_pt.py来实现这一点!根据您的意愿在第 27 行更改model_name
,并在第 58 行添加 JSON 的路径。
要微调 LipGER,只需运行:
sh finetune.sh
您需要手动设置data
值(使用数据集名称)、 --train_path
和--val_path
(使用训练和有效 .pt 文件的绝对路径)。
为了进行推理,首先更改 lipger.py 中的相应路径( exp_path
和checkpoint_dir
),然后运行(使用适当的测试数据路径参数):
sh infer.sh
裁剪嘴巴 ROI 的代码受到 Visual_Speech_Recognition_for_Multiple_Languages 的启发。
我们的 LipGER 代码受到 RobustGER 的启发。如果您发现我们的论文或代码有用,也请引用他们的论文。
@inproceedings{ghosh23b_interspeech,
author={Sreyan Ghosh and Sonal Kumar and Ashish Seth and Purva Chiniya and Utkarsh Tyagi and Ramani Duraiswami and Dinesh Manocha},
title={{LipGER: Visually-Conditioned Generative Error Correction for Robust Automatic Speech Recognition}},
year=2024,
booktitle={Proc. INTERSPEECH 2024},
}