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

Pycharm中Github Copilot插件安装与配置全攻略(2023最新版)

PyCharm中GitHub Copilot:从安装到实战的深度配置指南 如果你是一位Python开发者,最近可能已经被各种关于AI编程助手的讨论所包围。GitHub Copilot,这个由GitHub和OpenAI联手打造的“结对编程”伙伴,已经不再是科技新闻里的概念,而是实实在在地进入了我们的开发工作流。特别是在PyCharm这样的专业IDE中,Copilot的集成能带来怎样的化学反应?是效率的倍增,还是全新的编码体验?这篇文章,我将从一个深度使用者的角度,带你走完从零安装到高效实战的全过程,并分享一些官方文档里不会告诉你的配置技巧和实战心得。 1. 环境准备与账号激活:迈出第一步 在开始安装插件之前,我们需要确保两件事:一个可用的GitHub Copilot订阅,以及一个正确版本的PyCharm IDE。很多人第一步就卡在了这里。 首先,关于订阅。GitHub Copilot提供个人和商业两种订阅计划。对于个人开发者,尤其是学生和开源项目维护者,GitHub有相应的优惠甚至免费政策。你需要一个GitHub账号,并前往 GitHub Copilot 官方页面 进行注册和订

AI写作大师Qwen3-4B长文写作:系列小说连贯性保持

AI写作大师Qwen3-4B长文写作:系列小说连贯性保持 1. 引言:AI在长篇创作中的挑战与突破 随着大语言模型的发展,AI写作已从简单的段落生成迈向复杂的长文本创作。尤其在系列小说创作这类需要高度情节连贯性、人物一致性与世界观统一性的任务中,传统小参数模型(如0.5B级别)往往难以胜任——容易出现记忆断层、角色行为矛盾、剧情前后冲突等问题。 而基于阿里云最新发布的 Qwen3-4B-Instruct 模型构建的“AI写作大师”镜像,则为这一难题提供了切实可行的解决方案。该模型拥有40亿参数规模,在逻辑推理、上下文理解与长期依赖建模方面表现卓越,配合优化后的CPU运行策略和高级WebUI界面,使其成为目前无GPU环境下最具实用价值的长文生成工具之一。 本文将重点探讨如何利用 Qwen3-4B-Instruct 实现系列小说的高连贯性写作,涵盖提示工程设计、上下文管理机制、角色设定固化方法以及实际落地中的优化技巧。 2. 核心能力解析:为何Qwen3-4B适合长篇小说创作 2.1 更强的上下文理解与记忆保持能力 Qwen3-4B-Instruct 支持高达 32768

如何快速搭建AI写作助手:5个步骤完成智能小说创作系统

如何快速搭建AI写作助手:5个步骤完成智能小说创作系统 【免费下载链接】AI_NovelGenerator使用ai生成多章节的长篇小说,自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator 还在为小说创作而烦恼?想要一个能够自动生成长篇故事的AI创作伙伴吗?今天为您详细介绍AI_NovelGenerator——一款功能强大的开源AI小说生成工具,能够自动衔接上下文、埋设伏笔,让您的创作效率实现质的飞跃!无论您是网文作者、文学爱好者还是内容创作者,这款智能创作系统都能成为您最得力的创作助手。 🎯 项目核心价值与亮点 AI_NovelGenerator是一款基于人工智能技术的长篇小说自动生成系统,通过智能分析剧情发展、角色关系和世界观设定,能够创作出情节连贯、人物鲜活的多章节文学作品。 核心优势: * 自动上下文衔接,确保故事连贯性 * 智能伏笔埋设,增强情节吸引力 * 多章节自动生成,支持长篇创作 * 角色关系管理,构建完整人物网络 🚀 快速入门指南 环境准备与检

Lostlife2.0下载官网推荐工具:结合LLama-Factory打造个性化AI角色

Lostlife2.0下载官网推荐工具:结合LLama-Factory打造个性化AI角色 在虚拟角色越来越像“人”的今天,我们不再满足于一个只会回答问题的AI助手。用户想要的是有性格、有情绪、会讲冷笑话甚至带点小脾气的“数字生命”——这正是像 Lostlife2.0 这类项目试图构建的未来图景。而要让大模型从“通才”变成某个特定人格的“化身”,光靠提示词(prompt)远远不够,必须通过微调赋予它真正的个性基因。 但问题来了:微调听起来很酷,做起来却门槛极高。你得懂PyTorch、会写训练脚本、处理各种模型兼容性问题,还得有一堆高端GPU撑着。普通人怎么办?这时候,LLama-Factory 就成了那把打开大门的钥匙。 为什么是 LLama-Factory? 过去,如果你想给 Qwen 换个毒舌语气,或者让 Llama 学会用诗人的方式说话,每换一个模型几乎都要重写一遍代码。不同架构有不同的 tokenizer、不同的层命名规则、不同的加载方式……这种碎片化让快速实验变得异常艰难。 LLama-Factory