The library is used to create voice interface applications. It includes building blocks such as KWS (keyword spotting), DOA (Direction Of Arrival). There are also elements to measure RMS (dBFS or dB(A)).
- pyaudio
- numpy
- snowboy
Install pyaudio, numpy and snowboy, use virtualenv a virtual python environment.
sudo apt install python-pyaudio python-numpy python-virtualenv
sudo apt-get install swig python-dev libatlas-base-dev build-essential make
git clone --depth 1 https://github.com/Kitt-AI/snowboy.git
cd snowboy
virtualenv --system-site-packages env
source env/bin/activate
python setup.py build
python setup.py bdist_wheel
pip install dist/snowboy*.whl
cd ..
git clone https://github.com/voice-engine/voice-engine.git
cd voice-engine
python setup.py bdist_wheel
pip install dist/*.whl
To record audio and search keyword "snowboy", see also kws_snowboy.py
import time
from voice_engine.kws import KWS
from voice_engine.source import Source
src = Source()
kws = KWS()
src.link(kws)
def on_detected(keyword):
print('found {}'.format(keyword))
kws.on_detected = on_detected
kws.start()
src.start()
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
break
kws.stop()
src.stop()
The library uses gstreamer-like elements which can be linked together as an audio pipeline. One element can connect to more than one other elements.
The topology can be:
Source --> ChannelPicker --> KWS Source --> ChannelPicker --> KWS --> Alexa
| /\
V / \
DOA Alexa Google Asissitant
安装 $sudo apt-get install ffmpeg git python3-picamera python3-ws4py 克隆此存储库 $git clone https://? 用法 打开 cd 目录? 运行脚本 $python3 server.py $Initializing websockets server on port 8084 $Initializing HTTP server on port 8888 $Initializing camera $Initializing broadcast thread $Spawning background conversion process $Starting websockets thread $Starting HTTP server thread $Starting broadcast thread