./download-ggml-model.sh small
make
指令,得到 main.exe 可执行文件,然后就可以实现录音转文字了。录音文件只支持16khz的.wav
文件。
从视频中以16000的采样率提取音频并保存为 wav 文件的命令:
ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 16000 output.wav
录音识别指令:
./main.exe -l zh -m ./models/ggml-small.bin ../dhy.wav
可选参数:
-h, --help:显示帮助信息并退出程序。
-t N, --threads N:设置使用的线程数。
-p N, --processors N:设置使用的处理器数。
-ot N, --offset-t N:设置音频的时间偏移量(以毫秒为单位)。
-on N, --offset-n N:设置段索引的偏移量。
-d N, --duration N:设置要处理的音频长度(以毫秒为单位)。
-mc N, --max-context N:设置存储的文本上下文标记的最大数量。
-ml N, --max-len N:设置段的最大长度(以字符为单位)。
-sow, --split-on-word:指示是在单词上而不是标记上拆分段。
-bo N, --best-of N:设置要保留的最佳候选项数。
-bs N, --beam-size N:设置束搜索的束大小。
-wt N, --word-thold N:设置单词时间戳概率阈值。
-et N, --entropy-thold N:设置解码器失败时的熵阈值。
-lpt N, --logprob-thold N:设置解码器失败时的对数概率阈值。
-su, --speed-up:指示是否通过加速音频来减少精度。
-tr, --translate:指示是否从源语言翻译为英语。
-di, --diarize:指示是否对立体声音频进行人声分离。
-nf, --no-fallback:指示在解码时不使用温度回退。
-otxt, --output-txt:指示是否将结果输出到文本文件中。
-ovtt, --output-vtt:指示是否将结果输出到vtt文件中。
-osrt, --output-srt:指示是否将结果输出到srt文件中。
-olrc, --output-lrc:指示是否将结果输出到lrc文件中。
-owts, --output-words:指示是否输出用于生成卡拉OK视频的脚本。
-fp, --font-path:指定用于卡拉OK视频的等宽字体的路径。
-ocsv, --output-csv:指示是否将结果输出到CSV文件中。
-oj, --output-json:指示是否将结果输出到JSON文件中。
-of FNAME, --output-file FNAME:指定输出文件的路径(不包括文件扩展名)。
-ps, --print-special:指示是否打印特殊标记。
-pc, --print-colors:指示是否打印颜色。
-pp, --print-progress:指示是否打印进度。
-nt, --no-timestamps:指示是否不打印时间戳。
-l LANG, --language LANG:指定语音识别的语言('auto’表示自动检测)。
-dl, --detect-language:指示是否在自动检测语言后退出程序。
–prompt PROMPT:指定初始提示。
-m FNAME, --model FNAME:指定模型路径。
-f FNAME, --file FNAME:指定输入WAV文件的路径。
实时语音转录需要得到 stream 文件。使用make stream
命令编译, 发现需要依赖 sdl 库。
> make stream
In file included from examples/common-sdl.cpp:1:
examples/common-sdl.h:3:10: fatal error: SDL.h: No such file or directory
3 | #include
建议通过 MSYS2 来安装 SDL2:
pacman -S mingw-w64-x86_64-SDL2
安装完成后make stream
可以成功编译,得到 stream.exe 文件。开始测试:
./stream -m ./models/ggml-small.bin -t 8 --step 500 --length 5000
./stream.exe -m ../whisper.cpp/models/ggml-base.bin -t 8 -l zh -kc -f ./output.txt
参数说明: