项目一览
以下是关于Whisper项目及其相关项目的详细信息:
Whisper项目一览
-
Whisper:由OpenAI发布的通用语音识别模型,能够将语音转换为文本,具有多语言和多任务的能力,可用于语音转文本、语音翻译和说话人识别等任务。
-
Faster-Whisper:基于OpenAI的Whisper模型,使用CTranslate2作为推理引擎,速度比原版Whisper快4倍,同时节省内存,支持CPU和GPU上的8位量化,进一步提高效率。
-
Whisper-Diarization:基于Faster-Whisper,能够分辨说话人,结合了语音活动检测(VAD)和说话人嵌入技术,以识别音频中每个句子的说话人。
Whisper项目详细信息
Whisper
https://github.com/openai/whisper
- 模型种类:包括tiny、base、small、medium、large、turbo。
- 英文模型:其中tiny、base、small、medium支持.en后缀,用于专注英文环境。
- 安装方式:可以通过
pip install -U openai-whisper。 - 运行示例:
import whisper
model = whisper.load_model("turbo")
audio = whisper.load_audio("audio.mp3")
audio = whisper.pad_or_trim(audio)
mel = whisper.log_mel_spectrogram(audio, n_mels=model.dims.n_mels).to(model.device)
_, probs = model.detect_language(mel)
print(f"Detected language: {max(probs, key=probs.get)}")
options = whisper.DecodingOptions()
result = whisper.decode(model, mel, options)
print(result.text)
Faster-Whisper
https://github.com/SYSTRAN/faster-whisper
- 模型种类:与Whisper类似。
- 安装方式:可以通过
pip install faster-whisper。 - 运行示例:
from faster_whisper import WhisperModel
model_size = "large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))
Whisper-Diarization
https://github.com/MahmoudAshraf97/whisper-diarization
- 项目简介:结合了Whisper的语音识别能力、语音活动检测(VAD)和说话人嵌入技术,以识别每个句子中的说话人。
- 安装依赖:需要安装
PyTorch、FFMPEG和Cython。 - 运行流程:
- 从音频中提取人声以提高说话人嵌入的准确性。
- 使用Whisper生成转录文本。
- 使用WhisperX校正和对齐时间戳,以减少由于时间偏移导致的分割错误。
- 音频通过MarbleNet进行VAD和分割,排除静音部分。
- 使用TitaNet提取说话人嵌入以识别每个段落的说话人。
- 结果与WhisperX生成的时间戳关联,以检测每个单词的说话人,并通过标点符号模型重新对齐以补偿微小的时间偏移。
相关资源
- GitHub仓库:包含详细文档。
- PyPI页面:pip安装包。
- Hugging Face模型:预训练模型。
- 性能优化指南:进一步优化速度的技巧。
- 在线Demo:可以在线试用的Demo。