Linux 使用 pocketsphinx 做中文语音识别

前一篇博客说了一下怎么在 Windows 平台使用 pocketsphinx 做中文语音识别,今天看看在 Linux 上怎办实现。

由于 pocketsphinx 没有提供 Linux 的二进制包,因此我们需要自己根据源码编译。

下载

从下面地址下载源代码

https://sourceforge.net/projects/cmusphinx/files/

这里,我使用的是 sphinxbase-5prealpha.tar.gz 和 pocketsphinx-5prealpha.tar.gz。

编译

  • 编译 sphinxbase tar zxvf sphinxbase-5prealpha.tar.gz mv sphinxbase-5prealpha sphinxbase cd sphinxbase ./configure make sudo make install
  • 编译 pocketsphinx tar zxvf pocketsphinx-5prealpha.tar.gz cd pocketsphinx-5prealpha ./configure make clean all sudo make install

下载模型文件

模型文件下载地址

https://sourceforge.net/projects/cmusphinx/files/Acoustic and Language Models/ 其中 Mandarin 为中文普通话,下载之后我们可以看到

  • 声学模型:zh_broadcastnews_16k_ptm256_8000.tar.bz2 (需要解压)
  • 语言模型:zh_broadcastnews_64000_utf8.DMP
  • 拼音字典:zh_broadcastnews_utf8.dic

测试中文语音识别

  • 首先准备一个中文音频文件(要求:.wav 格式,采样频率 16000HZ,单声道)
  • 将下载的中文模型文件和解压后的 pocketsphinx 目录放到同一个目录下,这里假定就叫 “test”。
  • 进入“test”目录,然后运行下面的命令
pocketsphinx\bin\Release\x64\pocketsphinx_continuous.exe -hmm zh_broadcastnews_ptm256_8000 -lm zh_broadcastnews_64000_utf8.DMP -dict zh_broadcastnews_utf8.dic -infile myfile-16000.wav > myfile.txt
  • 运行完毕后,查看 myfile.txt 文件,内容即是程序识别出来的中文。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券