自学内容网 自学内容网

起飞,纯本地实时语音转文字!

简介

偶然在 github 上翻到了这个项目 https://github.com/k2-fsa/sherpa-ncnn

在没有互联网连接的情况下使用带有 ncnn 的下一代 Kaldi 进行实时语音识别。支持 iOSAndroidRaspberry PiVisionFive2LicheePi4A等。

也就是说语音转文字可以不再借助网络服务的接口,这在很多本地化场景中简直是起飞,甚至还支持实时语音识别,赶紧来试试吧!

官方文档:https://k2-fsa.github.io/sherpa/ncnn/install/

安装

本地测试环境为 macOS M3 air

克隆仓库已经本地编译

git clone https://github.com/k2-fsa/sherpa-ncnn
cd sherpa-ncnn
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j6

得到了如下结果

下载预训练模型

cd /path/to/sherpa-ncnn

wget https://github.com/k2-fsa/sherpa-ncnn/releases/download/models/sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23.tar.bz2
tar xvf sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23.tar.bz2

使用

接下来就可以使用语音转文本啦,在预训练模型中还提供了一些录音的案例

语音识别

cd /path/to/sherpa-ncnn

for method in greedy_search modified_beam_search; do
  ./build/bin/sherpa-ncnn \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/tokens.txt \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.param \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.bin \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.param \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.bin \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.param \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.bin \
    ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/test_wavs/0.wav \
    2 \
    $method
done

得到了如下结果:

可以看到,速度还是挺快的

实时语音识别

cd /path/to/sherpa-ncnn

./build/bin/sherpa-ncnn-microphone \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/tokens.txt \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.param \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.bin \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.param \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.bin \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.param \
  ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.bin \
  2 \
  greedy_search


效果非常好

其他使用方式

按官方文档介绍,该项目在各个平台都能直接运行

按本文所示的案例,直接部署到服务端也能够使用,于是就有了一个私有的语音识别接口。

踩坑

服务端编译时一些比较老的系统版本可能会遇到 cmake 版本过低无法进行编译的问题。

升级 cmake至3.5 或者直接物理解决:换个高版本的服务器系统。

结语

以前的语音识别方案一般都是各云服务平台直接买接口。

没想到现在已经直接能在本地使用,甚至还有实时语音识别,功能十分强大。

当然,本文只是跟着官方文档走了一次示例,尚未进行具体的使用和深入的研究。

希望能对大家有所帮助。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名


原文地址:https://blog.csdn.net/qq_30333063/article/details/140185306

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!