kaldiという音声処理のOSSを試した
tedium model(TEDの公演を学習したモデル)を使って、音声認識するまで行う。ソフトウェアはdockerコンテナで起動する
モデル、テストデータの準備
ホストマシンで行う
モデルのダウンロード
mkdir -p test/models
cd test/models
wget --no-check-certificate https://phon.ioc.ee/~tanela/tedlium_nnet_ms_sp_online.tgz
tar zxvf tedlium_nnet_ms_sp_online.tgz
ls -
english tedlium_nnet_ms_sp_online.tgz
テストデータのダウンロード
mkdir -p test/data
test/data
wget https://raw.githubusercontent.com/alumae/kaldi-gstreamer-server/master/test/data/bill_gates-TED.mp3
wget https://raw.githubusercontent.com/alumae/kaldi-gstreamer-server/master/test/data/bill_gates-TED.txt
docker-composeの作成
version: '3.3'
services:
app:
image: jcsilva/docker-kaldi-gstreamer-server
volumes:
- ./test:/opt/test
ports:
- 8080:80
起動とテスト
https://github.com/jcsilva/docker-kaldi-gstreamer-server#how-to-use)) https://github.com/jcsilva/docker-kaldi-gstreamer-server#testing)) を参考にする
- サーバ起動
docker-compose run --rm -p 8080:80 app /bin/bash
でコンテナ内に入って
cd /
sh start.sh -y /opt/kaldi-gstreamer-server/sample_english_nnet2.yaml
でサーバの起動 websocketを使うらしい
- 起動確認
http://www.websocket.org/echo.html
からLocationを
ws://localhost:8080/client/ws/status
に設定してconnectして
RECEIVED: {"num_workers_available": 1, "num_requests_processed": 0}
と返ってくれば起動成功
- テスト
python kaldigstserver/client.py -u ws://localhost:80/client/ws/speech -r 8192 /opt/test/data/bill_gates-TED.mp3
を実行すると認識結果が流れる
references
- https://github.com/alumae/kaldi-gstreamer-server))
- http://demura.net/athome/12743.html
- https://qiita.com/sayonari/items/936171340990c474be73#%EF%BC%95%EF%BC%92%E9%9F%B3%E5%A3%B0%E8%AA%8D%E8%AD%98%E7%94%A8%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E8%8B%B1%E8%AA%9Etedlium))