使用公共基础设施按需进行音频转录

OpenAI的 Whisper模型 具有相当出色的音频转录准确性。在生产环境中利用此类模型通常需要专用基础设施,这会带来一定的成本影响。Hugging Face支持使用公共基础设施对较小的音频文件进行短篇音频转录,但大多数音频文件都超过了30秒的阈值。
为了利用此公共基础设施对长篇音频进行完整转录,而无需启动专用的推理端点,我构建了一个按需转录应用程序,该应用程序将音频文件分成可管理的块,使用Whisper处理它们,并生成完整的转录和底层音频的简洁摘要。
以下是该应用程序的工作原理以及如何使用它来处理长达5分钟的音频文件(请注意,此长度是任意的,只是我为了演示目的而选择的)。
长篇音频的挑战

如果没有专用的推理端点,公共托管的Whisper基本模型仅支持处理长达30秒的音频片段。长篇处理能力可能需要大量的计算资源,这对于将此类应用程序产品化是必不可少的。
为了支持处理更大的音频文件,我实现了一种分块机制,将音频文件分成30秒的片段,单独处理每个片段,然后合并结果。使用这种架构的根本权衡是,我们牺牲了更长的处理时间以换取更低的运营成本。
分块处理
为了有效地管理音频文件,我使用了开源音频库 Librosa 和 Soundfile
- 音频分割:使用
librosa.load()
加载音频文件,该函数会提取音频数据及其采样率。 - 分块:音频被分成30秒的片段。每个块对应于基于采样率计算的特定音频样本范围。
- 保存临时分块:每个30秒的块都使用
soundfile.write()
临时保存为WAV文件。
这种分块方法确保了应用程序可以处理更大的文件,而不会使公共可用端点过载,同时保持转录的准确性。
所有开源工具
此应用程序利用了开源工具的力量,包括
- Hugging Face Transformers:用于Whisper模型和文本摘要管道。
- Gradio:创建用户友好的界面,用于上传音频文件和显示结果。
- Librosa和Soundfile:用于高效的音频处理和分块管理。
这些工具的组合使开发人员能够以最小的努力构建强大且可扩展的AI驱动应用程序。
应用程序的工作原理
- 音频上传:用户通过简单的网页界面上传音频文件。该应用程序还支持使用Gradio开箱即用的工具即时创建要处理的音频文件。
- 分块处理:应用程序将音频分成30秒的块,并使用Whisper对每个块进行转录。
- 摘要生成:使用Hugging Face Transformers库的摘要管道创建转录的简洁摘要。
- 结果显示:完整的转录和摘要并排显示,并可复制粘贴到应用程序之外使用。
结论
本应用程序演示了如何通过对音频文件进行分块并利用开源库的灵活性来克服某些公共语音识别工具的限制。通过将Whisper等尖端模型与Gradio等可访问工具(托管在Hugging Face的灵活计算资源上)集成,我们为长篇音频文件的转录和摘要创建了一个强大的解决方案。
在此尝试:https://huggingface.co/spaces/ZennyKenny/AudioTranscribe