uni farm

kaldiで英語の音声認識テストまで

kaldiで英語の音声認識テストまで

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
  • https://github.com/jcsilva/docker-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
2023, Built with Gatsby. This site uses Google Analytics.