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的实时语音转文本技术极大地提升了语音数据的可用性,为各个行业带来了更高的生产力和便利性。