手把手教你使用 Faster-Whisper 实时语音输入转文本,本地部署教程

手把手教你使用 Faster-Whisper 实时语音输入转文本,本地部署教程

文章目录


前言

要想实现像豆包、微信等一样的语音输入功能,通常有两种主流方案:云端 API(轻量、准确度极高)和 本地模型(免费、隐私、无需联网)。由于目前开发的系统需要添加一个语音识别功能,刚好记录一下使用 Faster-Whisper 实时语音输入转文本。Faster-Whisper官网地址链接: Faster-Whisper官网地址

复现成功如下图所示,请看下文教程就能部署本地实时语音输入转文本模型:

在这里插入图片描述

电脑有显卡的话可以参考下面这篇文章安装 cuda 和 cudnn

cuda和cudnn的安装教程: cuda和cudnn的安装教程(全网最详细保姆级教程)


一、安装环境

在你的虚拟环境安装 faster-whisper,命令如下:

pip install faster-whisper 
在这里插入图片描述


安装录音库

pip install pyaudiowpatch 
在这里插入图片描述

二、使用步骤

1.下载模型

手动下载(离线使用)
如果你的服务器无法联网,或者你想把模型放在指定文件夹,可以手动下载。根据需求点击链接下载:

在 Hugging Face 的 “Files and versions” 页面中,下载以下几个关键文件(放入同一个文件夹):

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

我是下载 faster-whisper-large-v3 的模型下载链接: faster-whisper-large-v3 模型下载地址

在这里插入图片描述

把下载的模型文件放到一个文件夹内:

在这里插入图片描述

2.实时录音转文本脚本

代码如下(示例):

# -*- coding: utf-8 -*-""" @Auth :落花不写码 @File :mian.py @IDE :PyCharm @Motto :学习新思想,争做新青年 """import os import sys import time import wave import tempfile import threading import torch import pyaudiowpatch as pyaudio from faster_whisper import WhisperModel # 录音切片时长(秒) AUDIO_BUFFER =5defrecord_audio(p, device):# 创建临时文件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"]))defcallback(in_data, frame_count, time_info, status):"""写入音频帧""" wave_file.writeframes(in_data)return(in_data, pyaudio.paContinue)try: stream = p.open(format=pyaudio.paInt16, channels=int(device["maxInputChannels"]), rate=int(device["defaultSampleRate"]), frames_per_buffer=1024,input=True, input_device_index=device["index"], stream_callback=callback,) time.sleep(AUDIO_BUFFER)# 阻塞主线程进行录音except Exception as e:print(f"录音出错: {e}")finally:if'stream'inlocals(): stream.stop_stream() stream.close() wave_file.close()return filename defwhisper_audio(filename, model):""" 调用模型进行转录 """try:# vad_filter=True 可以去掉没说话的静音片段 segments, info = model.transcribe( filename, beam_size=5, language="zh", vad_filter=True, vad_parameters=dict(min_silence_duration_ms=500))for segment in segments:print("[%.2fs -> %.2fs] %s"%(segment.start, segment.end, segment.text))except Exception as e:print(f"转录出错: {e}")finally:# 转录完成后删除临时文件if os.path.exists(filename): os.remove(filename)defmain():print("正在加载 Whisper 模型...")# 检查 GPUif torch.cuda.is_available(): device ="cuda" compute_type ="float16"# 或者 "int8_float16"print("使用 GPU (CUDA) 进行推理")else: device ="cpu" compute_type ="int8"# CPU 上推荐用 int8print("使用 CPU 进行推理")# 模型路径 model_path ="large-v3"try: model = WhisperModel(model_path, device=device, compute_type=compute_type,local_files_only=True)print("模型加载成功!")except Exception as e:print(f"模型加载失败: {e}")returnwith pyaudio.PyAudio()as p:try: default_mic = p.get_default_input_device_info()print(f"\n当前使用的麦克风: {default_mic['name']} (Index: {default_mic['index']})")print(f"采样率: {default_mic['defaultSampleRate']}, 通道数: {default_mic['maxInputChannels']}")print("-"*50)print("开始持续录音 (按 Ctrl+C 停止)...")whileTrue: filename = record_audio(p, default_mic) thread = threading.Thread(target=whisper_audio, args=(filename, model)) thread.start()except OSError:print("未找到默认麦克风,请检查系统声音设置。")except KeyboardInterrupt:print("\n停止录音,程序退出。")except Exception as e:print(f"\n发生未知错误: {e}")if __name__ =='__main__': main()

3.报错解决方法

报错:

Could not locate cudnn_ops64_9.dll. Please make sure it is in your library path!
Invalid handle. Cannot load symbol cudnnCreateTensorDescriptor

在这里插入图片描述


Faster-Whisper 所依赖的 CTranslate2 引擎是基于 cuDNN 9.x 版本编译的,我电脑上没有找到 cuDNN v9,看了一下官网的解释如下:

在这里插入图片描述


安装旧版本:

pip install --force-reinstall ctranslate2==4.4.0
在这里插入图片描述

还是报错:

在这里插入图片描述


找到你的 CUDA 安装在其他位置,我的在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin

找到 cublas64_11.dll,复制出来,改成 cublas64_12.dll

在这里插入图片描述


当我换了一个虚拟环境,使用 CUDA11.8 时候,虚拟环境已经安装了 CUDA11.8,报错:cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED

在这里插入图片描述


这是因为调用虚拟环境的 CUDA 11.8 ,PyTorch 安装的是 2.2.2+ cu118(自带 CUDA 11.8)如下图

在这里插入图片描述


报错因为你虚拟环境没有 cublas64_12.dll ,那么跟之前的操作一样,找到你的虚拟环境 cublas64_11.dll 所在的位置,我的在 D:\1-Python\ProgramFiles\Miniconda\envs\paddle_torch\Lib\site-packages\torch\lib

把 cublas64_11.dll 复制一份,改成 cublas64_12.dll

在这里插入图片描述

报错 :Applying the VAD filter requires the onnxruntime package
把 onnxruntime 库版本降低就行,我安装 1.19.2

pip install onnxruntime==1.19.2

参考文章:
报错RuntimeError: Library cublas64_12.dll is not found or cannot be loaded

最后成功了

在这里插入图片描述

总结

对你有帮助请帮我一键三连。

Read more

学生党申请github教育优惠到获取github-copilot pro一条龙教程

学生党申请github教育优惠到获取github-copilot pro一条龙教程

25年9月最新 申请GitHub教育优惠 到 获取GitHub co-pilot pro 一条龙教程(需要自备edu教育邮箱) 2025.9.4 博主亲测有效,可申请到两年教育优惠,无论您是否为在校学生,只要有一个可用的教育邮箱即可申请 by ZEEKLOG:Rem丶昕 注意:本教程的所有填写全部用英文! 一、前期准备 1. 需要自备自己学校的 edu 教育邮箱,例如博主的教育邮箱格式为 [email protected],准备的 edu 邮箱得搜索到对应的学校 2. 想申请教育邮箱的GitHub账号不能是新号,至少注册时间3天以上 二、绑定 edu 教育邮箱 2.1 在GitHub设置中添加自己的教育邮箱 登录 GitHub,点击右上方头像,在下拉列表中选 Settings

论文党收藏!5个免费降AIGC查重率网站,2025算法适配(亲测真实)!

论文党收藏!5个免费降AIGC查重率网站,2025算法适配(亲测真实)!

写论文怕 AI 生成痕迹被查?查重率飙到预警线?作为实测过 20 + 工具的博主,今天整理了 5 个真正实用的降重去痕网站,免费、操作简单,学生党、硕士党、博士党直接收藏备用!✨ 1. XYZ SCIENCE 首推宝藏工具!直接冲——AI率检测永久免费,AI率改写推广永久免费(也可99元永久免费),即使付费性价比依旧极高。2025最新算法可同步在知网、万方等所有主流查重平台,除了降低AI生成痕迹外(亲测疑似度可以降到0)还能进行段落级改写,维持原有逻辑不跑偏,在同时降重的效果下,论文的公式、专业术语在保留下来的同时自动修正不专业的公式与术语,不用二次返工。 2. PaperYY 降 AIGC 痕迹的老牌工具,力度超扎实!分学生版和编辑版,学生版免费额度够日常使用,疑似度能降到安全区间,适配大部分高校查重标准。唯一小遗憾是 2025 最新算法还在更新中,但对付常规论文检测完全够用,适合追求稳定效果的同学。 3.

机器人产业的编程机遇:头部厂商生态中的开发者新蓝海

引言:机器人时代的技术革命 从工厂流水线上的机械臂,到仓储物流中的自主移动机器人,再到引人注目的人形机器人,机器人技术正以前所未有的速度渗透到各个产业领域。据国际机器人联合会数据显示,全球工业机器人安装量在过去十年增长了300%,而服务机器人和特种机器人的市场规模预计将在2025年突破千亿美元。在这场机器人革命中,编程能力正成为连接硬件创新与行业应用的关键桥梁,为开发者开辟了全新的职业蓝海。 一、头部厂商生态全景:从封闭到开放的技术转型 1.1 工业机器人四大家族:传统王者的开放之路 发那科(FANUC) 长期以其“黑箱”式控制系统闻名,但近年也开始提供 KAREL语言的扩展接口,支持外部设备集成。其iRVision视觉系统的API,为机器视觉开发者提供了切入工业应用的机会。 库卡(KUKA) 的技术路线更具开放性,KUKA Sunrise OS基于Linux构建,原生支持ROS2。开发者可以通过KUKA.APC(高级编程控制) 框架,用C++/Python扩展机器人功能,实现复杂工艺的软件化封装。 ABB的开放战略最为系统,其OmniCore控制器不仅支持ROS,还提供

飞书机器人接入效率提升300%?Seedance 2.0企业级集成方案(2024最新APIv3适配实录)

第一章:飞书机器人接入效率提升300%?Seedance 2.0企业级集成方案(2024最新APIv3适配实录) Seedance 2.0 是面向中大型企业的飞书机器人集成中间件,深度适配飞书开放平台 2024 年发布的 API v3 全新架构。相比传统 Webhook 模式下平均 8–12 小时的手动配置流程,该方案通过自动化凭证管理、事件路由预编译与并发消息分发引擎,将单机器人接入耗时压缩至平均 2.6 小时,实测效率提升达 300%。 核心能力升级要点 * 支持飞书 Bot Token + App Ticket 双通道自动轮换,规避 v2 中因 token 过期导致的 72 小时服务中断风险 * 内置事件 Schema 自发现机制,可动态解析 message、card_