专业网站制作软件郑州seo全网营销
解密Whisper:AI驱动的语音识别新时代
原创 AI小信 别慌G个PT 2024年10月18日 17:54 北京
❝前两天分享了两个TTS模型,今天分享个ASR强力模型「Whisper」。Whisper是OpenAI开发的一个「ASR」(AutomatedSpeechRecognition,自动语音识别)开源模型,用于将语音转录成文本。它是一个强大的模型,能够处理多种语言的语音输入,支持实时转录、语音翻译等功能,并且在不同的音频质量和语境下都有良好的表现。
❞
Whisper 功能点
-
「多语言支持」:能够处理多种语言的输入,并且可以进行多语言之间的翻译。
-
「强大的抗噪能力」:对嘈杂环境中的语音有很好的转录效果。
-
「端到端的模型架构」:Whisper 使用 Transformer 模型,输入语音信号,输出文本。
-
「开源和易用性」:Whisper 是「开源」的,允许开发者将其轻松集成到自己的项目中。
Whisper 应用场景
Whisper 的多功能性使得它在许多领域都有广泛的应用:
-
「会议记录」:实时转录会议或讲座的内容,方便整理记录。
-
「内容创建」:播客、视频博主可以将语音内容快速转成文字稿。
-
「语音助手」:集成到智能语音助手中,提升对多语言的识别和响应能力。
-
「教育」:用于生成课堂、研讨会的文字记录,方便学生回顾学习内容。
Whisper 安装和使用教程
环境准备
要使用 Whisper,首先需要设置 Python 环境,并确保以下库和工具可用:
-
「Python 3.7+」
-
「PyTorch」:Whisper 依赖 PyTorch 进行深度学习推理。
-
「ffmpeg」:Whisper 需要 ffmpeg 来处理音频文件。
安装 PyTorch 和 ffmpeg
你可以按照以下步骤安装:
# 安装 PyTorch
pip install torch# 安装 ffmpeg(如果你使用 MacOS 或 Linux)
sudo apt update && sudo apt install ffmpeg# 对于 Windows 系统,可以通过下载[ffmpeg](https://ffmpeg.org/download.html)并手动安装。
安装 Whisper
在安装了 PyTorch 和 ffmpeg 后,可以使用 pip
来安装 Whisper:
pip install git+https://github.com/openai/whisper.git
Whisper使用方法1(命令行)
Whisper 提供了一个简单的命令行工具来进行语音转录。你可以直接使用该工具来转录音频文件。
运行 Whisper 命令行工具
whisper audio_file.wav --model small
其中 audio_file.wav
是你想转录的音频文件。--model small
指定了你要使用的模型大小,Whisper 支持以下几种模型:
-
tiny
-
base
-
small
-
medium
-
large
模型越大,精度越高,但需要更多的计算资源。你可以根据自己的需求选择合适的模型。
转录结果保存为文本文件
你可以将转录结果保存到文件中:
whisper audio_file.wav --model small --output_format txt
这将生成一个与音频文件同名的 .txt
文件,里面包含转录的文本。
Whisper使用方法2(Python脚本)
除了命令行工具,Whisper 还可以直接在 Python 中使用,你可以将它集成到自己的项目中。
Python 使用示例
import whisper# 加载模型
model = whisper.load_model("small")# 转录音频
result = model.transcribe("audio_file.wav")# 打印转录结果
print(result["text"])
Whisper 的 transcribe
方法可以处理多种格式的音频文件,如 wav
, mp3
, ogg
等。
模型参数配置
在使用 transcribe
方法时,你可以通过传递额外的参数来更改模型行为:
result = model.transcribe("audio_file.wav", language="zh", task="translate")
Whisper 模型提供了一些重要参数用于音频转文本的过程,帮助开发者根据不同需求调整模型的行为。以下是一些关键参数:
-
「
model_size
」:模型的大小有多种选择,分别为tiny
,base
,small
,medium
,large
,模型越大,准确率越高,但计算资源要求也越高。模型的选择通常取决于性能与速度之间的平衡。 -
「
language
」:用于指定音频的目标语言。如果设置为'auto'
,Whisper 会自动检测语言。你也可以指定具体的语言,例如'en'
表示英语,'zh'
表示中文等。 -
「
task
」:可以是transcribe
或translate
。transcribe
用于将音频直接转录为文本,translate
用于将非英语音频翻译成英语文本。 -
「
temperature
」:控制模型的随机性。较高的温度会让模型生成更多样化的结果,但准确度可能下降。默认设置通常是 0。 -
「
beam_size
」:在解码过程中使用的搜索范围。值越大,解码过程越慢,但通常生成的文本更准确。 -
「
best_of
」:该参数定义了模型在生成不同转录结果时保留最佳结果的策略。较高的值可能会提高准确性,但也会增加处理时间。 -
「
fp16
」:如果设置为True
,Whisper 将使用 16 位浮点数进行计算,从而加速推理过程并减少内存占用,适合在有 GPU 的情况下使用。 -
「
verbose
」:控制是否打印转录的详细信息。设置为True
时,将输出更多调试信息。 -
「
temperature_increment_on_fallback
」:当首次推理失败时,增加的温度值,帮助模型在不确定的情况下生成更好的结果。 -
「
initial_prompt
」:可以为转录任务提供一个初始提示,帮助模型生成更符合上下文的结果。
这些参数在使用 Whisper 模型时可根据实际场景灵活调整,以满足精度、速度和计算资源等方面的不同需求。
Whisper 模型的选择
Whisper 提供了多种不同大小的模型,选择合适的模型可以根据你的硬件条件和实际需求来决定。
模型 | 参数数量 | 大小 | 速度 | 精度 |
---|---|---|---|---|
tiny | 39 M | ~75 MB | 非常快 | 基础 |
base | 74 M | ~140 MB | 快 | 普通 |
small | 244 M | ~450 MB | 中等 | 高 |
medium | 769 M | ~1.5 GB | 较慢 | 非常高 |
large | 1550 M | ~3 GB | 慢 | 极高 |
对于低计算能力的设备(如笔记本电脑或轻量级服务器),small
或 medium
模型是较为推荐的选择。如果你拥有高性能 GPU,可以选择 large
模型来获得最佳的转录效果。
常见问题与解答
Whisper 适合实时转录吗?
Whisper 可以用于实时转录,但性能依赖于使用的模型大小和硬件条件。tiny
和 base
模型适合实时应用,而较大的模型如 large
则可能会有较高的延迟。
Whisper 如何处理多语言音频?
Whisper 能够自动检测输入音频的语言,并输出相应语言的转录文本。你也可以通过 language
参数指定特定的语言。
Whisper 是否支持音频的分段转录?
是的,Whisper 会自动处理长音频文件,并将其分成多个段落进行转录,最终合并为完整的转录文本。
更多内容
「Github」
https://github.com/openai/whisper
「Blog」
https://openai.com/index/whisper/「Paper」
https://arxiv.org/abs/2212.04356
「Model Card」
https://github.com/openai/whisper/blob/main/model-card.md
「Colab Example」
https://github.com/openai/whisper/blob/main/model-card.md