手把手教你使用 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

ToClaw他来了!融合OpenClaw、网页AI、远程功能,更适合真正的办公落地

ToClaw他来了!融合OpenClaw、网页AI、远程功能,更适合真正的办公落地

随着AI技术的不断发展,人们越来越期望AI能够融入真实工作流,提高办公效率。在此背景下,ToClaw应运而生,它融合了OpenClaw的开源Agent技术与远程功能,为办公场景带来了全新的解决方案。 为什么这波“龙虾热”,值得认真对比一次? 这一轮中文互联网对 “龙虾” 的热情,本质上不是大家突然爱上了某个新名词,而是越来越多人开始意识到:AI 不该只待在聊天框里,它应该开始进入真实工作流,帮人查资料、碰文件、跑任务、管设备。 OpenClaw 之所以火,一个重要原因就在于它把“个人 AI 助手”这件事做得很具象。根据其 GitHub 官方说明,它主打 personal open source AI assistant,推荐用户通过 openclaw onboard 这个 onboarding wizard 完成设置;而在 Windows 环境下,官方还特别建议通过 WSL2

11-Xtuner具体使用以及LLama Factory与Xtuner多卡微调大模型

11-Xtuner具体使用以及LLama Factory与Xtuner多卡微调大模型

训练前 500轮训练后 xtuner命令不存在 版本:0.2.0存在 回退到0.2.0rc0版本,注意这个版本的依赖固定 一、大模型分布式训练的基本概念 1.1 为什么需要分布式训练? 模型规模爆炸:现代大模型(如GPT-3、 LLaMA等)参数量达千亿级别,单卡GPU无法存储完整模型。 计算资源需求:训练大模型需要海量计算(如GPT-3需数万GPU小时),分布式训练可加速训练过程。 内存瓶颈:单卡显存不足以容纳大模型参数、梯度及优化器状态。 1.2 分布式训练的核心技术 数据并行(Data Parallelism) 原理:将数据划分为多个批次,分发到不同设备,每个设备拥有完整的模型副本。 同步方式:通过All-Reduce操作同步梯度(如PyTorch的DistributedDataParallel)。 挑战:通信开销大,显存占用高(需存储完整模型参数和优化器状态)。 模型并行(Model Parallelism) 原理:

如何快速掌握Whisper语音识别:新手必看的完整教程

如何快速掌握Whisper语音识别:新手必看的完整教程 【免费下载链接】paper-reading深度学习经典、新论文逐段精读 项目地址: https://gitcode.com/gh_mirrors/pa/paper-reading 还在为语音转文字烦恼吗?OpenAI Whisper让这一切变得简单!作为2022年发布的终极语音识别解决方案,Whisper凭借其强大的多语言支持和出色的鲁棒性,正在彻底改变我们处理语音数据的方式。无论你是内容创作者、研究人员还是普通用户,这篇完整指南都将帮助你快速上手这款免费且高效的语音处理工具。 为什么选择Whisper?三大核心优势解析 Whisper之所以能在众多语音识别模型中脱颖而出,主要得益于其三大核心优势: 🎯 多语言处理能力 - 支持99种语言的语音识别和翻译,真正实现全球化应用 🔧 零配置上手 - 端到端的深度学习架构,无需复杂的特征工程和语言模型集成 💪 超强适应性 - 在各种噪声环境和音频质量下都能保持稳定的识别性能 从零开始:Whisper快速上手指南 第一步:环境准备与安装 要开始使用Whis

MCP AI Copilot认证难吗?(AI助手考试通过率曝光)

第一章:MCP AI Copilot认证考试概览 MCP AI Copilot认证考试是面向现代云平台开发者与运维工程师的一项专业能力评估,旨在验证考生在AI辅助开发、自动化运维及智能诊断等场景下的实际应用能力。该认证聚焦于Microsoft Cloud Platform(MCP)生态中AI Copilot工具的集成与使用,涵盖代码生成、故障预测、资源优化等多个维度。 考试核心能力要求 * 熟练使用AI Copilot进行代码补全与重构 * 掌握基于自然语言指令的云资源配置方法 * 具备通过AI工具诊断系统异常的能力 * 理解AI模型在安全合规中的边界与限制 典型应用场景示例 在Azure DevOps环境中,开发者可通过AI Copilot自动生成CI/CD流水线配置。以下为YAML片段示例: # 自动生成的Azure Pipelines配置 trigger: - main pool: vmImage: 'ubuntu-latest' steps: - script: echo Starting build... displayName: 'Build