🚀 AudioX:多语言语音转文本模型
AudioX 是由 Jivi AI 开发的先进印度多语言自动语音识别(ASR)模型家族。它包含两个专门的变体——AudioX-North 和 AudioX-South,每个变体都针对不同的印度语言集进行了优化,以确保更高的准确性。AudioX-North 支持印地语、古吉拉特语和马拉地语,而 AudioX-South 则涵盖泰米尔语、泰卢固语、卡纳达语和马拉雅拉姆语。该模型基于开源 ASR 数据集和专有音频进行训练,能够在各种口音和声学条件下提供强大的转录能力,在支持的语言中表现卓越。

✨ 主要特性
专为印度语言打造
AudioX 旨在处理多样化的印度语言输入,支持语音助手、转录工具、客户服务自动化和多语言内容创作等实际应用。它在不同地区口音和音频质量下都能提供高精度的识别。
训练过程
AudioX 在开源语音识别骨干模型的基础上,使用监督学习进行微调。训练流程结合了领域自适应、语言平衡和噪声增强等技术,以确保在实际场景中的鲁棒性。
数据准备
该模型基于以下数据进行训练:
- 开源多语言 ASR 语料库
- 专有的印度语言医疗数据集
这种混合方法增强了模型在不同方言和声学条件下的泛化能力。
基准测试
AudioX 在多种印度语言上表现出色,超越了开源和商业 ASR 模型。我们使用 AI4Bharat 的 Vistaar 套件提供的官方评估脚本,在 Vistaar 基准测试 中对 AudioX 进行了评估,确保在不同语言场景下进行严格、标准化的比较。
提供商 |
模型 |
印地语 |
古吉拉特语 |
马拉地语 |
泰米尔语 |
泰卢固语 |
卡纳达语 |
马拉雅拉姆语 |
平均 WER |
Jivi AI |
AudioX |
12.14 |
18.66 |
18.68 |
21.79 |
24.63 |
17.61 |
26.92 |
20.1 |
ElevenLabs |
Scribe-v1 |
13.64 |
17.96 |
16.51 |
24.84 |
24.89 |
17.65 |
28.88 |
20.6 |
Sarvam |
saarika:v2 |
14.28 |
19.47 |
18.34 |
25.73 |
26.80 |
18.95 |
32.64 |
22.3 |
AI4Bharat |
IndicWhisper |
13.59 |
22.84 |
18.25 |
25.27 |
28.82 |
18.33 |
32.34 |
22.8 |
Microsoft |
Azure STT |
20.03 |
31.62 |
27.36 |
31.53 |
31.38 |
26.45 |
41.84 |
30.0 |
OpenAI |
gpt-4o-transcribe |
18.65 |
31.32 |
25.21 |
39.10 |
33.94 |
32.88 |
46.11 |
32.5 |
Google |
Google STT |
23.89 |
36.48 |
26.48 |
33.62 |
42.42 |
31.48 |
47.90 |
34.6 |
OpenAI |
Whisper Large v3 |
32.00 |
53.75 |
78.28 |
52.44 |
179.58 |
67.02 |
142.98 |
86.6 |
📦 安装指南
文档未提供具体安装步骤,可根据使用的库(如 🤗 transformers
和 librosa
),通过常规的 Python 包管理工具(如 pip
)进行安装:
pip install transformers librosa
💻 使用示例
基础用法
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import librosa
device = "cuda"
processor = WhisperProcessor.from_pretrained("jiviai/audioX-south-v1")
model = WhisperForConditionalGeneration.from_pretrained("jiviai/audioX-south-v1").to(device)
model.config.forced_decoder_ids = None
audio_path = "sample.wav"
audio_np, sr = librosa.load(audio_path, sr=None)
if sr != 16000:
audio_np = librosa.resample(audio_np, orig_sr=sr, target_sr=16000)
input_features = processor(audio_np, sampling_rate=16000, return_tensors="pt").to(device).input_features
predicted_ids = model.generate(input_features, task="transcribe", language="ta")
transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
print(transcription)
📄 许可证
本项目采用 Apache-2.0 许可证。