字
字节笔记本
2026年2月22日
LiveWhisper:基于 OpenAI Whisper 的实时语音转录工具
LiveWhisper 是一个基于 OpenAI Whisper 的实时语音转录工具,能够在终端中实现伪实时的逐句听写。它通过麦克风实时监听音频,当检测到语音时自动录制,静音时则将音频发送至 Whisper 进行转录。
项目简介
LiveWhisper 由 Nik Stromberg 开发,是一个开源的 Python 项目,在 GitHub 上已获得 358 stars。该项目使用 sounddevice 库替代 pyaudio 进行音频采集,解决了部分系统无法使用 pyaudio 的问题。
项目包含两个主要组件:
- livewhisper.py - 核心实时转录模块
- assistant.py - 基于转录功能的语音助手
核心特性
- 实时转录:逐句识别语音并输出到终端
- 智能触发:基于音量和频率阈值自动开始/停止录制
- 多模型支持:支持 Whisper 的多种模型尺寸(tiny, base, small, medium, large)
- 英语优化:可选择使用英语专用模型提升识别准确率
- 翻译功能:支持将非英语内容翻译为英文
- 低延迟:通过音频块处理和临时文件机制实现快速响应
- 语音助手:内置类 Siri/Alexa 的语音命令助手功能
技术栈
- Python 3 - 主要编程语言
- OpenAI Whisper - 语音识别模型
- sounddevice - 音频采集库
- numpy - 数值计算
- scipy - 音频文件处理
- pyttsx3 - 语音合成(助手功能)
- BeautifulSoup - 网页解析(助手功能)
安装指南
前置要求
- Python 3.7+
- 已安装 OpenAI Whisper
- 麦克风设备
安装步骤
bash
# 克隆仓库
git clone https://github.com/Nikorasu/LiveWhisper.git
cd LiveWhisper
# 安装依赖
pip install -r requirements.txtrequirements.txt 内容:
text
openai-whisper
numpy
sounddevice
scipy语音助手额外依赖
如需使用 assistant.py 语音助手功能,还需安装:
bash
pip install requests pyttsx3 wikipedia bs4
# Linux 系统需安装 espeak
sudo apt-get install espeak python3-espeak快速开始
基础实时转录
bash
python livewhisper.py运行后将显示 "Listening..",开始说话即可看到实时转录结果。按 Ctrl+C 退出。
配置参数
在 livewhisper.py 中可调整以下参数:
python
Model = 'small' # Whisper 模型尺寸:tiny, base, small, medium, large
English = True # 使用英语专用模型
Translate = False # 翻译非英语内容为英文
SampleRate = 44100 # 采样率
BlockSize = 30 # 音频块大小(毫秒)
Threshold = 0.1 # 音量阈值
Vocals = [50, 1000] # 人声频率范围(Hz)
EndBlocks = 40 # 静音检测块数使用示例
场景 1:作为模块导入
python
from livewhisper import StreamHandler
class MyApp:
def __init__(self):
self.running = True
self.talking = False
self.analyze = self.process_text
def process_text(self, text):
print(f"识别结果: {text}")
# 自定义处理逻辑
# 启动监听
app = MyApp()
handler = StreamHandler(app)
handler.listen()场景 2:语音助手
bash
python assistant.py唤醒词默认为 "computer",也可使用 "hey computer" 或 "okay computer"。
支持的语音命令:
| 命令类型 | 示例 |
|---|---|
| 天气查询 | "computer, what's the weather?" |
| 时间查询 | "computer, what time is it?" |
| 日期查询 | "computer, what's today's date?" |
| 百科搜索 | "computer, search wikipedia for Python" |
| 讲笑话 | "computer, tell me a joke" |
| 媒体控制 | "computer, play/pause/next/previous/stop" |
| 音量调节 | "computer, volume up/down" |
| 终止程序 | "computer, terminate" |
场景 3:自定义唤醒词
在 assistant.py 中修改唤醒词:
python
AIname = "jarvis" # 将唤醒词改为 "jarvis"工作原理
- 音频采集:使用 sounddevice 以 44.1kHz 采样率采集麦克风输入
- 语音检测:通过 FFT 分析频率,结合音量阈值判断是否为人声
- 缓冲录制:检测到语音时开始缓冲,静音达到阈值时停止
- Whisper 转录:将录制的音频保存为 WAV 文件,调用 Whisper 模型转录
- 结果输出:将识别结果输出到终端或通过回调函数传递给上层应用
注意事项
- 噪音消除:媒体控制功能建议启用系统级的回声/噪音消除
- 模型选择:tiny 模型速度最快但准确率较低,large 模型准确率最高但需要更多显存
- Linux 用户:如遇音频设备问题,可尝试配置 PulseAudio 的噪音消除功能
项目链接
- GitHub 仓库:https://github.com/Nikorasu/LiveWhisper
- Whisper 官方:https://github.com/openai/whisper
- 作者主页:https://github.com/Nikorasu
许可证
MIT License - 详见项目 LICENSE 文件
分享: