C++实现语音识别(Whisper.cpp)入门教程
创作时间:
作者:
@小白创作中心
C++实现语音识别(Whisper.cpp)入门教程
引用
CSDN
1.
https://blog.csdn.net/hhy321/article/details/139890557
本文将介绍如何使用C++实现语音识别,具体使用的是OpenAI的Whisper模型的C/C++端口——whisper.cpp。文章将详细讲解从环境搭建、模型下载到实际测试的全过程。
1. 简介
Whisper 是一种通用语音识别模型。它是在各种音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别、语音翻译和语言识别。
2. 环境准备
2.1 Visual Studio 2017
请访问 Visual Studio 下载页面 进行安装。
2.2 CMake
请访问 CMake 下载页面 进行安装。
3. whisper.cpp 下载与编译
3.1 下载whisper.cpp
whisper.cpp 是 OpenAI 的 Whisper 模型的 C/C++ 端口,可以通过 GitHub 下载源码:
git clone https://github.com/ggerganov/whisper.cpp.git
然后通过 models/download-ggml-model.cmd 进行权重文件下载:
models/download-ggml-model.cmd tiny
models/download-ggml-model.cmd base
整个 whisper 系列一共有5个级别的模型,按参数量进行排序,分别是微型 tiny,基本 base,小型 small,中型 medium,大型 large。参数 base 可以替换为 base.en, tiny, tiny.en, small, small.en, medium, medium.en, large。带 en 后缀的表示是英语模型,不带 en 后缀的是多国语言模型。
3.2 编译whisper.cpp
进入项目目录并生成 VS 工程文件:
mkdir build
cd build
cmake ..
编译生成 main 程序。
4. 测试
执行 main.exe 进行语音识别测试:
main.exe -m C:\Users\tomcat\Desktop\yxy\whisper.cpp\models\ggml-base.bin -f C:\Users\tomcat\Desktop\yxy\whisper.cpp\build\bin\Debug\output.wav -l zh
可以修改参数后再次执行:
main.exe -m C:\Users\tomcat\Desktop\yxy\whisper.cpp\models\ggml-base.bin -f C:\Users\tomcat\Desktop\yxy\whisper.cpp\build\bin\Debug\output.wav
5. 批量处理
可以编写批处理脚本进行批量语音识别:
chcp 65001
@echo off
REM 设置 PATH 环境变量,包含whisper可执行文件
SET PATH=%PATH%;C:\python312\Scripts
REM 指定所有视频所在路径,支持多级目录。
SET "video_dir=C:output"
REM 循环遍历所有视频
FOR /R "%video_dir%" %%f IN (*.mp4,*.wav,*.avi,*.ts) DO (
REM 提取视频文件名
SET "file_name=%%~nf"
REM 切换到视频所在目录
cd /d "%%~dpf"
REM 为这个视频生成wav音频文件
ffmpeg.exe -i "%%f" -ar 32000 -acodec pcm_s16le "%%f.wav"
REM 语音文件识别
main.exe -l zh -osrt -m C:\ggml-medium.bin "%%f.wav"
REM 返回原目录
cd /d "%video_dir%"
)
pause
热门推荐
普通人去日本就职,怎么拿到日本工签?
IPv6地址详解:从基础到高级应用
探营广州地铁三号线东延段,海傍站换乘四号线最快两三分钟
公司业务中不同职位类型解析:算作哪种最合适?
公司法人变更全攻略:条件、流程与注意事项
信创浪潮下的技术自主:汉印在公共安全领域的案例应用
东北酸白菜腌制方法是什么(掌握3个细节,1个月腌好能放1年)
世界镇痛日 | 抵御疼痛:非甾体抗炎药合理使用指南
搬家攻略:如何前瞻性规划搬家时间和路线?
谁该补充维生素D?家有这10类人快看看
适合中国人的权威减肥食谱!最新指南:吃对5类食物很关键
期权对冲策略是什么?如何操作?
三十岁之前把钙存够
大地影院被申请破产审查,昔日“影投老二”何以至此?
国产CAD软件与外国CAD软件的深度对比
8座车都有哪几款车?八座车推荐车型
守护绿宝:西瓜病虫害防控全攻略
白萝卜丝用做饺子馅时,是直接焯一下还是用盐渍出水分,哪种方式较好?
紫罗兰的养殖技巧及注意事项
双子座该如何让爱情保鲜?
NLP论文速读:通过混合偏好优化提升多模态大模型推理能力
程序员如何度过35岁危机?学到牛牛分享
尿路感染很可能没有症状?尿路感染更偏爱女性?
中间商赚差价是什么盈利模式?详解中间商的运作机制
死亡风险降低 13%!这种饮料对血管很好,夏天真的建议你多喝!
从仓差中能判断什么?仓差对投资决策有哪些影响?
2025重养自己:减少内耗的5个方法
长三角可借鉴新加坡博物馆“精益+融合”经验
意大利战争:从小纠纷到大混战
如何办理将耕地转为宅基地的手续流程