Whisper AI是由OpenAI开发的一种先进的自动语音识别 (ASR)模型,它可以将音频以惊人的准确度转录为文本,并支持多种语言进行转换。
虽然Whisper AI主要用于批处理,但它可以在Linux系统上面配置为实时语音到文本转录。在本文中,小编将简单介绍Linux系统安装、配置和运行Whisper AI进行实时转录的过程。
什么是Whisper AI?
Whisper AI是一个开源语音识别模型,经过大量音频记录数据集的训练,并且基于深度学习架构,使其能够:
- 转录多种语言的语音
- 高效处理口音和背景噪音
- 将口语翻译成英语
由于它是为高精度转录而设计的,因此广泛应用于:
- 实时转录服务(例如用于无障碍访问)
- 语音助手与自动化
- 转录录制的音频文件
默认情况下,Whisper AI 并未针对实时处理进行优化。然而,通过一些附加工具,它可以处理实时音频流并立即进行转录。
Whisper AI系统要求
在Linux系统上运行Whisper AI之前,请确保你的系统满足以下要求:
硬件要求:
- CPU:多核处理器(Intel/AMD)
- RAM:至少8GB(建议16GB或更多)
- GPU:带有CUDA的NVIDIA GPU(不必须,但使用的话可显著加快处理速度)
- 存储:至少10GB的可用磁盘空间用于存储模型和依赖项
软件要求:
- Linux发行版,例如Ubuntu、Debian、Arch、Fedora等
- Python 3.8或更高版本
- Pip包管理器用于安装Python包
- FFmpeg用于处理音频文件和流
步骤1、安装所需的依赖项
在安装Whisper AI之前,请更新软件包列表并升级现有软件包,命令如下:
sudo apt update [Ubuntu系统] sudo dnf update -y [Fedora系统] sudo pacman -Syu [Arch系统]
接下来需要安装Python 3.8或更高版本和Pip包管理器,命令如下:
sudo apt install python3 python3-pip python3-venv -y [Ubuntu系统] sudo dnf install python3 python3-pip python3-virtualenv -y [Fedora系统] sudo pacman -S python python-pip python-virtualenv [Arch系统]
最后需要安装FFmpeg,这是一个用于处理音频和视频文件的多媒体框架:
sudo apt install ffmpeg [在Ubuntu系统] sudo dnf install ffmpeg [在Fedora系统] sudo pacman -S ffmpeg [Arch系统]
步骤2、在Linux中安装Whisper AI
安装所需依赖项后,可以继续在虚拟环境中安装Whisper AI,该环境允许安装Python包而不会影响系统包:
python3 -m venv whisper_env source whisper_env/bin/activate pip install openai-whisper

安装完成后,运行以下命令检查Whisper AI是否正确安装:
whisper --help
这将显示一个包含可用命令和选项的帮助菜单,这意味着Whisper AI已成功安装并可以使用:

步骤3、在Linux中运行Whisper AI
一旦安装了Whisper AI,现在就可以开始使用不同的命令转录音频文件。
要转录音频文件(例如audio.mp3),请运行以下命令:
whisper audio.mp3
Whisper将处理该文件并生成文本格式的转录内容:

现在所有内容都准备就绪,这里可以创建一个Python脚本,从麦克风捕获音频并实时转录:
nano real_time_transcription.py
将以下代码复制粘贴到该文件中(以下代码仅供参考,可以根据系统性能和实际使用情况灵活调整):
import sounddevice as sd
import numpy as np
import whisper
import queue
import threading
import wave
import io
import time
# ------------------ Whisper Model ------------------
print("Loading Whisper model...")
model = whisper.load_model("base")
print("Whisper model loaded.")
# ------------------ Audio Parameters ------------------
SAMPLE_RATE = 16000 # Whisper 需要16k采样率
BUFFER_SIZE = 1024 # 录音缓冲区
CHANNELS = 1 # 单声道
# 限制队列大小,防止音频数据积压
audio_queue = queue.Queue(maxsize=10)
def audio_callback(indata, frames, time, status):
"""麦克风音频回调函数"""
if status:
print(f"Audio callback status: {status}")
try:
audio_queue.put_nowait(indata.copy()) #复制数据,避免被覆盖
except queue.Full:
print("Warning: Audio queue is full, dropping frames.") #避免队列积压
def save_audio_to_memory(audio_data):
"""将NumPy音频数据转换为WAV格式(存储在内存)"""
wav_io = io.BytesIO()
with wave.open(wav_io, 'wb') as wf:
wf.setnchannels(CHANNELS)
wf.setsampwidth(2) # 16-bit PCM
wf.setframerate(SAMPLE_RATE)
wf.writeframes(audio_data.astype(np.int16).tobytes())
return wav_io.getvalue()
def transcribe_audio():
"""线程:从队列中获取音频数据,并进行转录"""
while True:
try:
audio_data = audio_queue.get(timeout=2) # 获取音频数据
buffer = [audio_data]
while not audio_queue.empty():
buffer.append(audio_queue.get())
# 合并音频数据
audio_data = np.concatenate(buffer, axis=0)
# 转换为 WAV 格式(存储在内存)
wav_bytes = save_audio_to_memory(audio_data)
# Whisper 进行转录
result = model.transcribe(io.BytesIO(wav_bytes), language="zh")
if result["text"].strip():
print(f"[{time.strftime('%H:%M:%S')}] Transcription: {result['text']}") # 输出转录结果
except queue.Empty:
continue # 没有数据就继续等待
# ------------------ 启动转录线程 ------------------
transcription_thread = threading.Thread(target=transcribe_audio, daemon=True)
transcription_thread.start()
# 这里设置 `dtype="float32"` 让Whisper处理更精准
with sd.InputStream(callback=audio_callback, channels=CHANNELS, samplerate=SAMPLE_RATE, blocksize=BUFFER_SIZE, dtype="float32"):
print("Listening... Press Ctrl+C to stop.")
try:
while True:
time.sleep(0.1) # 避免CPU过载
except KeyboardInterrupt:
print("\nStopping...")
使用Python执行脚本,它将开始监听麦克风输入并实时显示转录的文本:
python3 real_time_transcription.py
这时对着麦克风清晰地说话,应该能够看到终端上输出对应转录文本文字。
结论
Whisper AI是一个强大的语音转文本工具,可以适用于Linux进行实时转录。当然,为了获得最佳效果,建议使用GPU并优化系统以实现实时处理。
总的来说,Whisper AI的实时语音转文本技术极大地提升了语音数据的可用性,为各个行业带来了更高的生产力和便利性。
惠主机





















