一、本地语音转文字
参考: https://www.daginge.com/blog/running-whisper-on-an-m1-mac-to-transcribe-audio-data-locally
最近在看一些学习资料,很多都是直播视频的形式。两小时的直播,看起来很慢,所以找了网上的语音转文字的服务,都是收费的,两小时的语音转文字竟然要收费 20元。查了资料,其实大模型都已经训练好了,10 分钟就能自己部署一个语音转文字的服务(任意语言)。
具体效果:
部署方式
1.clone 仓库(whisper.cpp 开源库 )
git clone https://github.com/ggerganov/whisper.cpp.git
2. 下载模型 base / medium / large (base 最小 141M,下载速度快)
./models/download-ggml-model.sh base
3. 编译
make base
4. 使用示例音频执行
./main -m models/ggml-base.bin -f samples/jfk.wav
显示效果
“And so, my fellow Americans, ask not what your country can do for you,
ask what you can do for your country.”
二、使用自己的视频
1.将 mp4 转换成 wav 音频格式
ffmpeg -i 20240103share.mp4 -acodec pcm_s16le -ac 1 -ar 16000 20240103share.wav
2.输出成 txt or vtt 字幕
# 输出成 txt(-l auto 自动识别语言)
./main -m models/ggml-base.bin -l auto -f 20240103share.wav -otxt -of aaa
# 输出成 vtt
./main -m models/ggml-base.bin -l auto -f 20240103share.wav -ovtt -of aaa
三、使用 large 模型的完成操作 – 识别更准确
1.下载 large 模型(2.9GB)
./models/download-ggml-model.sh large-v1
2.将 mp4 转成 wav (10秒钟)
ffmpeg -i 20240103share.mp4 -acodec pcm_s16le -ac 1 -ar 16000 20240103share.wav
3. 编译(10秒钟)
make large-v1
4. 运行效果(一个时长两小时的音频,预计要转换 2 小时)
./main -m models/ggml-large-v1.bin -l auto -f data/20240103share.wav -otxt -of 20240103share
四、使用 m1 加速
参考:https://liguoqinjim.cn/post/ai/whisper%E7%9A%84%E4%BD%BF%E7%94%A8/
参考:Core ML support https://github.com/ggerganov/whisper.cpp
1.安装依赖包 (请使用 python3.10,python3.11 3.12 有兼容性问题)
pip3 install ane_transformers
pip3 install openai-whisper
pip3 install coremltools
2.重新编译
make clean
WHISPER_COREML=1 make -j
3.创建专用模型
下载模型: ./models/download-ggml-model.sh large-v1
转换模型: ./models/generate-coreml-model.sh large-v1
(这两个模型的名称要相同,把 large 模型转为 coreml,转换很耗时,可以直接下载转换好的 ggml-large-v1-encoder.mlmodelc.zip )
4.运行:(一个时长两小时的音频,转换速度几乎没变 )
./main -m models/ggml-large-v1.bin -l auto -f data/20240103share.wav -otxt -of 20240103share
5.使用 medium 模型试下,coreml 优化速度提升 1 倍
./main -m models/ggml-medium.bin -l auto -f data/20240103share.wav -otxt -of 20240103share
五、其他知识点
GGML 是存储模型的文件格式,特别是在 GPT(生成式预训练变换器)等语言模型的上下文中。GGML 模型可以在 CPU 上运行,包括苹果的 M1 芯片
COREML 是苹果的能够在苹果设备上运行的机器学习框架格式 速度更快
发表回复