news 2026/2/26 4:46:45

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你使用 Faster-Whisper 实时语音输入转文本,本地部署教程

文章目录

  • 前言
  • 一、安装环境
  • 二、使用步骤
    • 1.下载模型
    • 2.实时录音转文本脚本
  • 总结

前言

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

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

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

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


一、安装环境

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

pip install faster-whisper


安装录音库

pip install pyaudiowpatch

二、使用步骤

1.下载模型

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

  • Tiny (最小/最快):Systran/faster-whisper-tiny
  • Base:Systran/faster-whisper-base
  • Small:Systran/faster-whisper-small
  • Medium:Systran/faster-whisper-medium
  • Large-v2:Systran/faster-whisper-large-v2
  • Large-v3 (效果最好):Systran/faster-whisper-large-v3
  • Distil-Large-v3 (蒸馏版/速度快):Systran/faster-distil-whisper-large-v3

在 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 :学习新思想,争做新青年 """importosimportsysimporttimeimportwaveimporttempfileimportthreadingimporttorchimportpyaudiowpatchaspyaudiofromfaster_whisperimportWhisperModel# 录音切片时长(秒)AUDIO_BUFFER=5defrecord_audio(p,device):# 创建临时文件withtempfile.NamedTemporaryFile(suffix=".wav",delete=False)asf: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)# 阻塞主线程进行录音exceptExceptionase:print(f"录音出错:{e}")finally:if'stream'inlocals():stream.stop_stream()stream.close()wave_file.close()returnfilenamedefwhisper_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))forsegmentinsegments:print("[%.2fs -> %.2fs] %s"%(segment.start,segment.end,segment.text))exceptExceptionase:print(f"转录出错:{e}")finally:# 转录完成后删除临时文件ifos.path.exists(filename):os.remove(filename)defmain():print("正在加载 Whisper 模型...")# 检查 GPUiftorch.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("模型加载成功!")exceptExceptionase:print(f"模型加载失败:{e}")returnwithpyaudio.PyAudio()asp: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()exceptOSError:print("未找到默认麦克风,请检查系统声音设置。")exceptKeyboardInterrupt:print("\n停止录音,程序退出。")exceptExceptionase:print(f"\n发生未知错误:{e}")if__name__=='__main__':main()

报错:

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

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

最后成功了


总结

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 1:07:24

别再手动写毕业论文了!8款免费AI写论文神器,科研轻松搞定!

别再手动写毕业论文了!这句话不是鼓励你偷懒,而是想告诉你一个残酷的真相:在AI时代,纯粹依赖复制粘贴、东拼西凑的“裁缝式”写作,不仅效率低下,更是将自己置于学术不端的高危悬崖边。你以为查重软件和导师…

作者头像 李华
网站建设 2026/2/20 10:09:19

video-analyzer:5分钟学会用AI自动解析视频内容的终极指南

video-analyzer:5分钟学会用AI自动解析视频内容的终极指南 【免费下载链接】video-analyzer A comprehensive video analysis tool that combines computer vision, audio transcription, and natural language processing to generate detailed descriptions of vi…

作者头像 李华
网站建设 2026/2/25 15:16:53

AI Agent的自然语言生成一致性优化

AI Agent的自然语言生成一致性优化 关键词:自然语言生成、一致性优化、AI Agent、语言模型、文本连贯性、上下文感知、评估指标 摘要:本文深入探讨了AI Agent在自然语言生成任务中的一致性优化问题。我们将从理论基础出发,分析当前主流语言模型在保持文本一致性方面的挑战,…

作者头像 李华
网站建设 2026/2/25 4:09:28

python驾校考试预约管理系统-7e8wi_pycharm django vue flask

目录已开发项目效果实现截图开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 python驾校考试预约管理系统-7e8wi_pycharm django vue flask…

作者头像 李华
网站建设 2026/2/19 23:56:35

[INTERCONNECT] Oscilloscope (OSC)

[INTERCONNECT] Oscilloscope 引言 正文 关键字 端口 属性 一般属性 标准属性 仿真属性 显示属性 结果属性 实施细节 Author: JiJi \textrm{Author: JiJi} Author: JiJi Created Time: 2025.12.24 \textrm{Created Time: 2025.12.24} Created Time: 2025.12.24

作者头像 李华
网站建设 2026/2/25 7:19:07

基于Java的高校科研项目管理网站的设计与实现开题报告

基于Java的高校科研项目管理网站的设计与实现开题报告 一、选题背景与研究意义(一)选题背景 在高等教育内涵式发展的背景下,科研创新能力已成为衡量高校核心竞争力的关键指标。随着高校科研项目数量逐年递增、项目类型不断丰富(如…

作者头像 李华