跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Faster-Whisper 本地实时语音识别部署与实战指南

基于 Faster-Whisper 实现本地实时语音识别,无需联网且保护隐私。涵盖环境搭建、模型下载、Python 录音脚本编写及常见 CUDA/cuDNN 报错解决方案。通过优化 compute_type 和依赖版本,确保在 GPU 或 CPU 环境下稳定运行,适合集成到需要离线语音输入的系统项目中。

1951018925发布于 2026/3/22更新于 2026/6/615 浏览
Faster-Whisper 本地实时语音识别部署与实战指南

前言

要实现类似微信的语音输入功能,云端 API 虽准但涉及隐私和成本,本地模型则是免费且离线的最佳选择。这里记录一下使用 Faster-Whisper 进行本地实时语音转文本的部署过程。

一、环境准备

在虚拟环境中安装核心库。注意,标准库名为 pyaudio,而非某些教程中误写的变体。

pip install faster-whisper pyaudio

二、模型下载

Faster-Whisper 支持多种模型规格,从轻量级的 Tiny 到效果最好的 Large-v3。若服务器无法直连 Hugging Face,可手动下载以下文件至指定目录:

  • config.json
  • model.bin
  • tokenizer.json
  • vocabulary.json
  • preprocessor_config.json

三、录音与转录脚本

下面是一个完整的 Python 示例,实现了持续录音、切片处理及实时转录。代码中使用了线程来避免录音阻塞,并启用了 VAD(语音活动检测)过滤静音片段。

# -*- coding: utf-8 -*-
import os
import sys
import time
import wave
import tempfile
import threading
import torch
import pyaudio
from faster_whisper import WhisperModel

AUDIO_BUFFER = 5

def record_audio(p, device):
    # 创建临时 WAV 文件
    with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as f:
        filename = f.name
        wave_file = wave.open(filename, "wb")
        wave_file.setnchannels(int(device["maxInputChannels"]))
        wave_file.setsampwidth(p.get_sample_size(pyaudio.paInt16))
        wave_file.setframerate(int(device["defaultSampleRate"]))

        def callback():
            wave_file.writeframes(in_data)
             (in_data, pyaudio.paContinue)

        :
            stream = p.(
                =pyaudio.paInt16,
                channels=(device[]),
                rate=(device[]),
                frames_per_buffer=,
                =,
                input_device_index=device[],
                stream_callback=callback,
            )
            time.sleep(AUDIO_BUFFER)
         Exception  e:
            ()
        :
               ():
                stream.stop_stream()
                stream.close()
            wave_file.close()
         filename

 ():
    :
        
        segments, info = model.transcribe(
            filename, beam_size=, language=, vad_filter=,
            vad_parameters=(min_silence_duration_ms=)
        )
         segment  segments:
            ( % (segment.start, segment.end, segment.text))
     Exception  e:
        ()
    :
         os.path.exists(filename):
            os.remove(filename)

 ():
    ()
     torch.cuda.is_available():
        device = 
        compute_type = 
        ()
    :
        device = 
        compute_type = 
        ()

    
    model_path = 
    :
        model = WhisperModel(model_path, device=device, compute_type=compute_type, local_files_only=)
        ()
     Exception  e:
        ()
        

     pyaudio.PyAudio()  p:
        :
            default_mic = p.get_default_input_device_info()
            ()
            ( * )
            ()
             :
                filename = record_audio(p, default_mic)
                thread = threading.Thread(target=whisper_audio, args=(filename, model))
                thread.start()
         OSError:
            ()
         KeyboardInterrupt:
            ()
         Exception  e:
            ()

 __name__ == :
    main()
in_data, frame_count, time_info, status
return
try
open
format
int
"maxInputChannels"
int
"defaultSampleRate"
1024
input
True
"index"
except
as
print
f"录音出错:{e}"
finally
if
'stream'
in
locals
return
def
whisper_audio
filename, model
try
# vad_filter=True 可自动去除静音片段
5
"zh"
True
dict
500
for
in
print
"[%.2fs -> %.2fs] %s"
except
as
print
f"转录出错:{e}"
finally
if
def
main
print
"正在加载 Whisper 模型..."
if
"cuda"
"float16"
print
"使用 GPU (CUDA) 进行推理"
else
"cpu"
"int8"
print
"使用 CPU 进行推理"
# 设置为 local_files_only=True 以使用本地模型文件
"large-v3"
try
True
print
"模型加载成功!"
except
as
print
f"模型加载失败:{e}"
return
with
as
try
print
f"\n当前麦克风:{default_mic['name']} (Index: {default_mic['index']})"
print
"-"
50
print
"开始录音 (按 Ctrl+C 停止)..."
while
True
except
print
"未找到默认麦克风,请检查系统设置。"
except
print
"\n程序退出。"
except
as
print
f"未知错误:{e}"
if
"__main__"

四、常见问题排查

部署过程中可能会遇到 CUDA 或 cuDNN 版本不匹配的问题,以下是几种典型情况的解决方案。

1. cuDNN 版本报错

如果提示 Could not locate cudnn_ops64_9.dll,说明 Faster-Whisper 依赖的 CTranslate2 引擎需要特定版本的 cuDNN。尝试降级 CTranslate2:

pip install --force-reinstall ctranslate2==4.4.0

2. cublas 动态库缺失

若报错 Library cublas64_12.dll is not found,通常是因为 PyTorch 版本与系统 CUDA 路径不一致。

找到虚拟环境中的 torch/lib 目录,复制 cublas64_11.dll 并重命名为 cublas64_12.dll,或者确保环境变量指向正确的 CUDA 路径。

3. VAD 滤镜依赖

启用 vad_filter=True 时需要 onnxruntime 包。如果版本过高可能不兼容,建议固定版本:

pip install onnxruntime==1.19.2

五、总结

通过以上步骤,即可在本地完成 Faster-Whisper 的部署与测试。该方案无需联网,数据完全私有化,适合对隐私敏感或网络受限的场景。

目录

  1. 前言
  2. 一、环境准备
  3. 二、模型下载
  4. 三、录音与转录脚本
  5. -- coding: utf-8 --
  6. 四、常见问题排查
  7. 1. cuDNN 版本报错
  8. 2. cublas 动态库缺失
  9. 3. VAD 滤镜依赖
  10. 五、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • wechat-need-web 浏览器扩展实现微信网页版访问
  • Microi 吾码在服务器虚拟化中的应用与资源管理
  • 8 款 AI 工具助力产品经理高效撰写 PRD 文档
  • 当前主流大模型盘点及国内企业选型指南
  • LoRA 微调 LLaMA 类模型:原理与实战指南
  • 2024 大模型落地应用案例集:娱乐、视频与游戏行业精选
  • GPT 模型架构与训练流程详解
  • Python 布尔类型基础
  • 用 AI 工具 Cursor 30 分钟开发鸿蒙元服务 Demo
  • 网络安全工程师岗位需求分析:市场前景与技能方向
  • 网络安全行业发展现状与人才需求分析
  • 马斯克开源 Grok 协议解析及大模型时代程序员发展机会
  • B 站直播间自动化搭建:弹幕机器人功能配置指南
  • AI 大模型的崛起、应用及未来影响分析
  • OpenClaw 树莓派部署:解决 Gateway 仪表盘登录问题
  • GitHub 教育认证通过后领取 Copilot Pro 指南
  • pnpm + Turborepo 高效 Monorepo 架构搭建指南
  • Windows 系统安装与配置 Neo4j 图数据库指南
  • IDEA AI 编程插件实测对比:Copilot、灵码与 TRAE
  • Linux System V 共享内存:原理、实操与避坑指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online