项目介绍:klaam
klaam 是一个专注于阿拉伯语的语音识别、分类和文本转语音(TTS)的项目。它利用了诸如 wave2vec 和 fastspeech2 等多种先进模型,为用户提供了训练与预测的功能。
语音分类
klaam 项目提供了一种简单的方式来进行语音分类。只需导入 klaam
中的 SpeechClassification
,实例化一个模型对象,即可使用模型的 classify
方法对音频文件进行分类。
from klaam import SpeechClassification
model = SpeechClassification()
model.classify(wav_file)
语音识别
项目中提供了语音识别的功能,用户可以通过 SpeechRecognition
实例来转录音频文件。支持现代标准阿拉伯语(MSA)和埃及方言(EGY)的识别。
from klaam import SpeechRecognition
model = SpeechRecognition()
model.transcribe(wav_file)
文本转语音
klaam 的文本转语音功能基于 FastSpeech2 实现。用户需准备好配置文件路径,并实例化 TextToSpeech
对象,用以合成指定文本。
from klaam import TextToSpeech
prepare_tts_model_path = "../cfgs/FastSpeech2/config/Arabic/preprocess.yaml"
model_config_path = "../cfgs/FastSpeech2/config/Arabic/model.yaml"
train_config_path = "../cfgs/FastSpeech2/config/Arabic/train.yaml"
vocoder_config_path = "../cfgs/FastSpeech2/model_config/hifigan/config.json"
speaker_pre_trained_path = "../data/model_weights/hifigan/generator_universal.pth.tar"
model = TextToSpeech(prepare_tts_model_path, model_config_path, train_config_path, vocoder_config_path, speaker_pre_trained_path)
model.synthesize(sample_text)
数据集
项目使用了多个阿拉伯语数据集,以支持其语音模型的训练:
- MGB-3:包含来自 YouTube 的 15 小时埃及阿拉伯语语音数据。
- ADI-5:来自 Aljazeera TV 的超过 50 小时语音数据,涵盖多种地区方言。
- Common Voice:一个多语言数据集,在 Hugging Face 上可以访问。
- Arabic Speech Corpus:提供对齐和转录的阿拉伯语数据集。
模型支持
klaam 项目目前支持一些在 transformers 平台上提供的模型,用于语音识别和分类:
- 埃及阿拉伯语语音识别:
wav2vec2-large-xlsr-53-arabic-egyptian
- 标准阿拉伯语语音识别:
wav2vec2-large-xlsr-53-arabic
- 多方言语音分类:
wav2vec2-large-xlsr-dialect-classification
- 标准阿拉伯语文本转语音:FastSpeech2
示例说明
klaam 项目提供了简单的代码示例,用户可以快速了解分类、识别和文本转语音的具体使用流程。示例笔记本可以在 Colab 上执行。
培训
项目提供了用于模型训练的脚本,支持语音分类和识别任务。训练能够应用于如 MGB-3、Common Voice 等多语言数据集。
具体说明与步骤详细介绍如何通过下载数据集、准备和处理数据、运行训练等步骤来实现模型的训练。
这个项目由 ARBML 团队创建,欢迎任何建议或贡献,可以通过提交 pull request 进行合作。