Python和C++通用语音识别模型
它在不同音频的大型数据集上进行训练,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Transformer 序列到序列模型针对各种语音处理任务进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。所有这些任务都联合表示为由解码器预测的一系列标记,允许单个模型替换传统语音处理管道的许多不同阶段。多任务训练格式使用一组特殊标记作为任务说明符或分类目标。
·
它在不同音频的大型数据集上进行训练,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。
Transformer 序列到序列模型针对各种语音处理任务进行训练,包括多语言语音识别、语音翻译、口语识别和语音活动检测。 所有这些任务都联合表示为由解码器预测的一系列标记,允许单个模型替换传统语音处理管道的许多不同阶段。 多任务训练格式使用一组特殊标记作为任务说明符或分类目标。
Python中模型使用
设置
命令行应用
Python脚本中执行
C++中模型使用
特点
- 没有依赖项的普通 C/C++ 实现
- 通过 Arm Neon 和 Accelerate 框架优化
- AVX 内在函数支持 x86 架构
- 混合 F16 / F32 精度
- 低内存使用率
- 运行时零内存分配
- 在 CPU 上运行
使用
首先,下载一个转换为 ggml 格式的模型。例如:
bash ./models/download-ggml-model.sh base.en
现在构建 main 示例并转录一个音频文件,如下所示:
# build the main example
make
# transcribe an audio file
./main -f input.wav
要快速演示,只需运行 make base.en
:
$ make base.en
cc -I. -O3 -std=c11 -pthread -DGGML_USE_ACCELERATE -c ggml.c -o ggml.o
c++ -I. -I./examples -O3 -std=c++11 -pthread -c sper.cpp -o sper.o
c++ -I. -I./examples -O3 -std=c++11 -pthread examples/main/main.cpp ggml.o -o main -framework Accelerate
./main -h
usage: ./main [options] file0.wav file1.wav ...
options:
-h, --help [default] show this help message and exit
-t N, --threads N [4 ] number of threads to use during computation
-p N, --processors N [1 ] number of processors to use during computation
-ot N, --offset-t N [0 ] time offset in milliseconds
-on N, --offset-n N [0 ] segment index offset
-d N, --duration N [0 ] duration of audio to process in milliseconds
-mc N, --max-context N [-1 ] maximum number of text context tokens to store
-ml N, --max-len N [0 ] maximum segment length in characters
-wt N, --word-thold N [0.01 ] word timestamp probability threshold
-su, --speed-up [false ] speed up audio by x2 (reduced accuracy)
-tr, --translate [false ] translate from source language to english
-otxt, --output-txt [false ] output result in a text file
-ovtt, --output-vtt [false ] output result in a vtt file
-osrt, --output-srt [false ] output result in a srt file
-owts, --output-words [false ] output script for generating karaoke video
-ps, --print-special [false ] print special tokens
-pc, --print-colors [false ] print colors
-nt, --no-timestamps [true ] do not print timestamps
-l LANG, --language LANG [en ] spoken language
-m FNAME, --model FNAME [models/ggml-base.en.bin] model path
-f FNAME, --file FNAME [ ] input WAV file path
bash ./models/download-ggml-model.sh base.en
Downloading ggml model base.en ...
ggml-base.en.bin 100%[========================>] 141.11M 6.34MB/s in 24s
Done! Model 'base.en' saved in 'models/ggml-base.en.bin'
You can now use it like this:
$ ./main -m models/ggml-base.en.bin -f samples/jfk.wav
===============================================
Running base.en on all samples in ./samples ...
===============================================
----------------------------------------------
[+] Running base.en on samples/jfk.wav ... (run 'ffplay samples/jfk.wav' to listen)
----------------------------------------------
更多音频样本
实时音频输入示例
这是对来自麦克风的音频执行实时推理的简单示例。流工具每半秒对音频进行一次采样,并连续运行转录。
./stream -m ./models/ggml-base.en.bin -t 8 --step 500 --length 5000
控制生成的文本段的长度
词级时间戳
卡拉OK式电影生成
参阅 - 亚图跨际
更多推荐
已为社区贡献23条内容
所有评论(0)