Blog

Blog

PHODAL

Raspberry PI Jasper安装,Raspberry PI语音控制

一直在寻找一个好的语音替换方案,在Windows Phone On Devices出现之前,还需要很长一些时候,找了很久,从TTS到其他什么的,最后算是找到了Jasper,在几天的努力之后终于编译成功了。。

Raspberry Pi Jasper 硬件

  • Raspberry Pi Model B
  • USB Microphone (we tested with Akiro Kinobo USB Microphone)
  • 4GB SD Card
  • Ethernet Cable
  • Airlink Mini-USB Adapter (optional—see below)
  • Micro-USB Cable
  • USB Wall Charging Adapter
  • Speakers that work through the Raspberry Pi audio jack (probably need to be self-powered)

虽然是这样的,但是我们需要的大概就是

  • USB麦克风
  • 无线网卡
  • 音箱

这个算是还好,复杂的地方在于编译可能要几天的时间,除非你正好放假。。

Raspberry Pi 配置USB声卡

这里用的是steelseries的西伯利亚USB声卡。

Raspberry pi 安装声卡驱动

  sudo apt-get install vim git-core espeak python-dev python-pip bison libasound2-dev libportaudio-dev python-pyaudio --yes

还有其他的必要软件

  • vim 编辑器
  • espeak tts工具
  • bison 自动生成语法分析器程序
  • libasound2-dev libportaudio-dev python-pyaudio 声卡相关
  • python-dev python-pip python相关,还有利器pip

Raspberry PI Jasper启用usb声卡

  sudo vim /etc/modprobe.d/alsa-base.conf

注释掉

 options snd-usb-audio index=-2

或者改为

 options snd-usb-audio index=0

重启声卡

 sudo alsa force-reload

Raspbery PI Jasper测试USB声卡

这里需要麦克风和耳机(或者音箱)

 arecord temp.wav

上面的命令是用来录音的,用于测试

 aplay -D hw:1,0 temp.wav

播放录音文件

Raspberry PI Jasper配置库

将下面的PATH添加到~/.bash_profile

export LD_LIBRARY_PATH="/usr/local/lib"
source .bashrc

再把下面的代码添加到~/.bash_profile或者~/.bashrc

LD_LIBRARY_PATH="/usr/local/lib"
export LD_LIBRARY_PATH 
PATH=$PATH:/usr/local/lib/
export PATH

Raspberry Pi Jasper安装Pocketsphinx

Sphinx是由美国卡内基梅隆大学开发的大词汇量、非特定人、连续英语语音识别系统。 PocketSphinx是一个计算量和体积都很小的嵌入式语音识别引擎。在Sphinx-2的基础上针对嵌入式系统的需求修改、优化而来,是第一个开源面向嵌入式的中等词汇量连续语音识别项目。识别精度和Sphinx-2差不多。

Raspberry Pi Jasper安装Sphinxbase

因为pocketsphinx依赖于库Sphinxbase,先安装Sphinxbase

下载sphinxbase

  wget http://downloads.sourceforge.net/project/cmusphinx/sphinxbase/0.8/sphinxbase-0.8.tar.gz

解压sphinxbase

 tar -zxvf sphinxbase-0.8.tar.gz

编译和安装sphinxbase

 cd ~/sphinxbase-0.8/
./configure --enable-fixed
make
sudo make install

Raspberry Pi Jasper安装Pocketsphinx

下载Pocketsphinx

wget http://downloads.sourceforge.net/project/cmusphinx/pocketsphinx/0.8/pocketsphinx-0.8.tar.gz

解压Pocketsphinx

 tar -zxvf pocketsphinx-0.8.tar.gz

编译和安装Pocketsphinx

cd ~/pocketsphinx-0.8/
./configure
make
sudo make install

Raspberry Pi Jasper CMUCLMTK

关于CMUSphinx

Open Source Toolkit For Speech Recognition

语言模型生成工具 cmuclmtk

编译所需要的工具

  sudo apt-get install subversion autoconf libtool automake gfortran --yes

编译安装CMUCLMTK

 svn co https://svn.code.sf.net/p/cmusphinx/code/trunk/cmuclmtk/
 cd cmuclmtk/
 sudo ./autogen.sh && sudo make && sudo make install

Raspberry Pi 库安装

关于openfst

OpenFst is a library for constructing, combining, optimizing, and searching weighted finite-state transducers (FSTs).

openfst下载

  wget http://www.cs.nyu.edu/~allauzen/openfst/openfst-1.3.4.tar.gz

openfst编译和安装

cd openfst-1.3.4/
sudo ./configure --enable-compact-fsts --enable-const-fsts --enable-far --enable-lookahead-fsts --enable-pdt
sudo make install # come back after a really long time

!!需要注意的是这里的编译和安装可能会出错,需要修改swapfile的大小

Raspberry Pi Jasper Library安装

下载软件包

wget https://mitlm.googlecode.com/files/mitlm-0.4.1.tar.gz
wget https://m2m-aligner.googlecode.com/files/m2m-aligner-1.2.tar.gz
wget https://phonetisaurus.googlecode.com/files/phonetisaurus-0.7.8.tgz 
wget http://phonetisaurus.googlecode.com/files/g014b2b.tgz

解压

tar -xvf m2m-aligner-1.2.tar.gz
tar -xvf phonetisaurus-0.7.8.tgz
tar -xvf mitlm-0.4.1.tar.gz
tar -xvf g014b2b.tgz

Raspberry PI M2M

cd m2m-aligner-1.2/
sudo make

Raspberry Pi MITLM

cd mitlm-0.4.1/
sudo ./configure
sudo make install

Raspberry Pi Phonetisaurus

cd phonetisaurus-0.7.8/
cd src
sudo make

移动编译好的文件

sudo cp ~/m2m-aligner-1.2/m2m-aligner /usr/local/bin/m2m-aligner
sudo cp ~/phonetisaurus-0.7.8/phonetisaurus-g2p /usr/local/bin/phonetisaurus-g2p

为了给下面这个很大的文件编译

Raspberry Pi Jasper 构建Phonetisaurus model

cd g014b2b/
./compile-fst.sh

最后重命令

mv ~/g014b2b ~/phonetisaurus

然后我们就接近,接近我们想要的核心了。

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Engineer, Consultant, Writer, Designer

ThoughtWorks 技术专家

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《前端架构:从入门到微前端》、《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 最新技术分享

标签