字节笔记本

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.txt

requirements.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"

工作原理

  1. 音频采集:使用 sounddevice 以 44.1kHz 采样率采集麦克风输入
  2. 语音检测:通过 FFT 分析频率,结合音量阈值判断是否为人声
  3. 缓冲录制:检测到语音时开始缓冲,静音达到阈值时停止
  4. Whisper 转录:将录制的音频保存为 WAV 文件,调用 Whisper 模型转录
  5. 结果输出:将识别结果输出到终端或通过回调函数传递给上层应用

注意事项

  • 噪音消除:媒体控制功能建议启用系统级的回声/噪音消除
  • 模型选择:tiny 模型速度最快但准确率较低,large 模型准确率最高但需要更多显存
  • Linux 用户:如遇音频设备问题,可尝试配置 PulseAudio 的噪音消除功能

项目链接

许可证

MIT License - 详见项目 LICENSE 文件

分享: