0


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

简介

偶然在 github 上翻到了这个项目

  1. https://github.com/k2-fsa/sherpa-ncnn

在没有互联网连接的情况下使用带有

  1. ncnn

的下一代

  1. Kaldi

进行实时语音识别。支持

  1. iOS

  1. Android

  1. Raspberry Pi

  1. VisionFive2

  1. LicheePi4A

等。

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

官方文档:

  1. https://k2-fsa.github.io/sherpa/ncnn/install/

安装

本地测试环境为 macOS M3 air

克隆仓库已经本地编译

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

得到了如下结果

下载预训练模型

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

使用

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

语音识别

  1. cd /path/to/sherpa-ncnn
  2. formethodin greedy_search modified_beam_search;do
  3. ./build/bin/sherpa-ncnn \
  4. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/tokens.txt \
  5. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.param \
  6. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.bin \
  7. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.param \
  8. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.bin \
  9. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.param \
  10. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.bin \
  11. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/test_wavs/0.wav \2\$methoddone

得到了如下结果:

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

实时语音识别

  1. cd /path/to/sherpa-ncnn
  2. ./build/bin/sherpa-ncnn-microphone \
  3. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/tokens.txt \
  4. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.param \
  5. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/encoder_jit_trace-pnnx.ncnn.bin \
  6. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.param \
  7. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/decoder_jit_trace-pnnx.ncnn.bin \
  8. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.param \
  9. ./sherpa-ncnn-streaming-zipformer-zh-14M-2023-02-23/joiner_jit_trace-pnnx.ncnn.bin \2\
  10. greedy_search


效果非常好

其他使用方式

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

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

踩坑

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

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

结语

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

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

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

希望能对大家有所帮助。

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


本文转载自: https://blog.csdn.net/qq_30333063/article/details/140185306
版权归原作者 我码玄黄 所有, 如有侵权,请联系我们删除。

“起飞,纯本地实时语音转文字!”的评论:

还没有评论