查网站是否正规,太平鸟品牌门户网站建设,四海网络网站建设建站,农产品信息网站建设方案文章目录前言一、安装环境二、使用步骤1.下载模型2.实时录音转文本脚本总结前言
要想实现像豆包、微信等一样的语音输入功能#xff0c;通常有两种主流方案#xff1a;云端 API#xff08;轻量、准确度极高#xff09;和 本地模型#xff08;免费、隐私、无需联网#x…文章目录前言一、安装环境二、使用步骤1.下载模型2.实时录音转文本脚本总结前言要想实现像豆包、微信等一样的语音输入功能通常有两种主流方案云端 API轻量、准确度极高和 本地模型免费、隐私、无需联网。由于目前开发的系统需要添加一个语音识别功能刚好记录一下使用 Faster-Whisper 实时语音输入转文本。Faster-Whisper官网地址链接: Faster-Whisper官网地址复现成功如下图所示请看下文教程就能部署本地实时语音输入转文本模型电脑有显卡的话可以参考下面这篇文章安装 cuda 和 cudnncuda和cudnn的安装教程: cuda和cudnn的安装教程(全网最详细保姆级教程)一、安装环境在你的虚拟环境安装 faster-whisper命令如下pip install faster-whisper安装录音库pip install pyaudiowpatch二、使用步骤1.下载模型手动下载离线使用如果你的服务器无法联网或者你想把模型放在指定文件夹可以手动下载。根据需求点击链接下载Tiny (最小/最快):Systran/faster-whisper-tinyBase:Systran/faster-whisper-baseSmall:Systran/faster-whisper-smallMedium:Systran/faster-whisper-mediumLarge-v2:Systran/faster-whisper-large-v2Large-v3 (效果最好):Systran/faster-whisper-large-v3Distil-Large-v3 (蒸馏版/速度快):Systran/faster-distil-whisper-large-v3在 Hugging Face 的“Files and versions”页面中下载以下几个关键文件放入同一个文件夹config.jsonmodel.bintokenizer.jsonvocabulary.jsonpreprocessor_config.json我是下载 faster-whisper-large-v3 的模型下载链接 faster-whisper-large-v3 模型下载地址把下载的模型文件放到一个文件夹内2.实时录音转文本脚本代码如下示例# -*- coding: utf-8 -*- Auth 落花不写码 File mian.py IDE PyCharm Motto :学习新思想争做新青年 importosimportsysimporttimeimportwaveimporttempfileimportthreadingimporttorchimportpyaudiowpatchaspyaudiofromfaster_whisperimportWhisperModel# 录音切片时长秒AUDIO_BUFFER5defrecord_audio(p,device):# 创建临时文件withtempfile.NamedTemporaryFile(suffix.wav,deleteFalse)asf:filenamef.name wave_filewave.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:streamp.open(formatpyaudio.paInt16,channelsint(device[maxInputChannels]),rateint(device[defaultSampleRate]),frames_per_buffer1024,inputTrue,input_device_indexdevice[index],stream_callbackcallback,)time.sleep(AUDIO_BUFFER)# 阻塞主线程进行录音exceptExceptionase:print(f录音出错:{e})finally:ifstreaminlocals():stream.stop_stream()stream.close()wave_file.close()returnfilenamedefwhisper_audio(filename,model): 调用模型进行转录 try:# vad_filterTrue 可以去掉没说话的静音片段segments,infomodel.transcribe(filename,beam_size5,languagezh,vad_filterTrue,vad_parametersdict(min_silence_duration_ms500))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():devicecudacompute_typefloat16# 或者 int8_float16print(使用 GPU (CUDA) 进行推理)else:devicecpucompute_typeint8# CPU 上推荐用 int8print(使用 CPU 进行推理)# 模型路径model_pathlarge-v3try:modelWhisperModel(model_path,devicedevice,compute_typecompute_type,local_files_onlyTrue)print(模型加载成功)exceptExceptionase:print(f模型加载失败:{e})returnwithpyaudio.PyAudio()asp:try:default_micp.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(开始持续录音 (按 CtrlC 停止)...)whileTrue:filenamerecord_audio(p,default_mic)threadthreading.Thread(targetwhisper_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 cudnnCreateTensorDescriptorFaster-Whisper 所依赖的 CTranslate2 引擎是基于 cuDNN 9.x 版本编译的我电脑上没有找到 cuDNN v9看了一下官网的解释如下安装旧版本pip install--force-reinstall ctranslate24.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最后成功了总结对你有帮助请帮我一键三连。