WhisperHallu: 优化Whisper转录的创新音频预处理工具
在人工智能语音识别领域,OpenAI的Whisper模型以其强大的多语言转录能力而闻名。然而,Whisper在处理某些音频时可能会产生"幻听"现象,即在没有实际语音的部分生成错误的文本。为了解决这个问题,一个名为WhisperHallu的创新项目应运而生。本文将深入探讨WhisperHallu的工作原理、主要功能以及如何使用这个强大的音频预处理工具。
WhisperHallu的诞生背景
WhisperHallu源于开发者们在GitHub上关于Whisper幻听问题的一次讨论(openai/whisper#679)。这个实验性项目旨在通过一系列音频预处理步骤,优化输入到Whisper模型的音频质量,从而减少幻听文本的产生,提高转录的准确性。
核心算法:创新的音频预处理流程
WhisperHallu的核心在于其独特的音频预处理算法,主要包括以下步骤:
-
噪音去除: 利用Facebook Demucs或Deezer Spleeter等先进的音频分离技术提取人声,有效去除背景噪音。
-
静音去除与音量归一化: 使用ffmpeg工具去除音频中的静音部分,并对音量进行归一化处理。
-
语音活动检测(VAD): 应用Silero VAD模型进一步识别并移除非语音部分。
-
添加语音标记: 在处理后的音频中添加特殊的语音标记,帮助Whisper模型更准确地识别语音段落。
-
语音压缩: 使用ffmpeg 4.4版本(需要在Google Colab环境中升级)对语音进行压缩处理。
-
多阶段转录尝试:
- 首先尝试带标记的音频转录
- 如果输出中没有检测到标记,则尝试反转标记再次转录
- 如果仍未成功,最后尝试不带标记的转录
这种多层次的预处理和转录策略大大提高了Whisper模型处理复杂音频的能力,有效减少了幻听现象的发生。
WhisperHallu的主要特性
除了核心的预处理算法,WhisperHallu还提供了一系列灵活的处理选项和参数:
- 兼容多个Whisper版本: 支持Whisper V1、V2和V3版本(默认使用V2,因为V3在处理音乐文件时效果不佳)。
- 可调节的转录参数: 用户可以调整beam_size(默认为2)、patience和temperature等参数。
- 部分音频处理: 支持仅处理输入文件的特定部分(需要对时间戳进行后处理)。
- 多种时间拉伸方法: 提供多种时间拉伸技术供实验(需要对时间戳进行后处理)。
- 人声重混: 支持带或不带语音归一化的人声重混。
- 多次转录: 可以获取多个转录结果,无需重复预处理过程。
WhisperHallu的应用场景
WhisperHallu不仅仅是一个独立的工具,它还可以与其他项目协同工作,扩展其应用范围:
-
与WhisperTimeSync配合: WhisperHallu可以为WhisperTimeSync项目提供更准确的转录结果,进一步提高音频-文本同步的精确度。
-
NeuroSpell Dictaphone集成: 用户可以通过NeuroSpell Dictaphone实际体验WhisperHallu的效果。
-
karaok-AI项目应用: WhisperHallu和WhisperTimeSync被用于karaok-AI项目中,用于提取人声和歌词,为卡拉OK应用提供支持。
-
ChatMate自动化工具: ChatMate是一个全面的ChatGPT自动化工具,其中包含了使用WhisperHallu生成的转录结果来创建SRT字幕文件翻译器的示例。
如何使用WhisperHallu
WhisperHallu提供了两种使用方式:Google Colab在线环境和本地安装。
Google Colab快速体验
-
标准Whisper版本: https://colab.research.google.com/drive/1-GpXaNaGFXKX9VXl60JGVVrGO41t09KA?usp=sharing
-
Faster Whisper版本: https://colab.research.google.com/drive/1RkvOtUTbUD5NVsRI4aKEqJO8BRo8BFIY?usp=sharing
这些Colab笔记本提供了一个便捷的方式来体验WhisperHallu的功能,无需本地安装任何依赖。
本地安装步骤
如果您希望在本地环境中使用WhisperHallu,请按照以下步骤进行安装:
- 升级ffmpeg至4.4版本(Google Colab环境中需要):
! add-apt-repository -y ppa:savoury1/ffmpeg4
! apt-get -qq install -y ffmpeg
!ffmpeg -version
- 安装依赖:
根据您选择的语音分离工具(Demucs或Spleeter)和Whisper版本(标准Whisper、Faster Whisper或SM4T),安装相应的依赖。以下是标准Whisper的安装示例:
sudo apt update && sudo apt install ffmpeg
sudo apt install python3 python3-pip virtualenv
virtualenv -p python3 ../venvWhisper
. ../venvWhisper/bin/activate
pip install -U openai-whisper
pip3 install torchaudio
- 使用WhisperHallu:
安装完成后,您可以使用以下Python代码来调用WhisperHallu:
from transcribeHallu import loadModel
from transcribeHallu import transcribePrompt
# 设置音频文件路径和语言
path = "/path/to/your/en/sound/file"
lngInput = "en"
# 是否为音乐文件(设置为True会进行最小化处理)
isMusic = False
# 设置提示语(需要根据不同语言进行调整)
lng = "en"
prompt = "Whisper, Ok. " \
"A pertinent sentence for your purpose in your language. " \
"Ok, Whisper. Whisper, Ok. " \
"Ok, Whisper. Whisper, Ok. " \
"Please find here, an unlikely ordinary sentence. " \
"This is to avoid a repetition to be deleted. " \
"Ok, Whisper. "
# 选择模型大小
modelSize = "medium"
loadModel("0", modelSize=modelSize)
# 执行转录
result = transcribePrompt(path=path, lng=lng, prompt=prompt, lngInput=lngInput, isMusic=isMusic)
WhisperHallu的未来发展
WhisperHallu作为一个开源项目,其发展潜力巨大。未来可能的改进方向包括:
-
支持更多语音分离算法: 集成更多先进的语音分离技术,以适应不同类型的音频输入。
-
优化处理速度: 通过并行计算或GPU加速等方法提高预处理和转录的效率。
-
自适应参数调整: 开发智能算法,根据输入音频的特征自动选择最佳的预处理参数。
-
多模态集成: 结合视频或其他模态信息,进一步提高转录的准确性。
-
更广泛的语言支持: 扩展对小语种和方言的支持,提高全球化应用能力。
结语
WhisperHallu为解决Whisper模型的幻听问题提供了一个创新而有效的解决方案。通过其独特的音频预处理流程和灵活的配置选项,WhisperHallu不仅提高了语音转录的准确性,还为音频处理和人工智能领域开辟了新的研究方向。
无论您是语音识别研究人员、开发者,还是需要高质量音频转录的用户,WhisperHallu都值得一试。它不仅能够提供更准确的转录结果,还能启发我们思考如何进一步改进现有的语音识别技术。
随着人工智能和音频处理技术的不断发展,我们期待看到WhisperHallu在未来会有更多令人兴奋的应用和突破。如果您对音频处理和AI语言项目感兴趣,不妨深入探索WhisperHallu,或访问Cubaix了解更多相关的商业和工业级AI语言项目。
让我们共同期待WhisperHallu和语音识别技术的美好未来! 🎙️🤖✨