ASR とは?
automated speech recognition.
主にはスピーチ音声から文字起こし(テキスト化. STT, speech to text)するのを想定.
(ライブラリによっては感情とかピッチとかも推定できるっぽい?)
NeMo(Jasper, QuartzNet)
NVIDIA 製. 2019 年 9 月 25 日執筆時点では, できたてほやほや.
NeMo 自体はフレームワークの名前で, ASR と NLP のモジュールがある.
ASR モジュール部分は Jasper と QuartzNet(の PyTorch 実装).
end-to-end で ASR 学習できるっぽい.
もともとは OpenSeq2seq の一部として, そこそこ前から開発されていた模様.
Jasper: An End-to-End Convolutional Neural Acoustic Model
https://arxiv.org/abs/1904.03288
Jasper 自体は使っている Neural network モジュールは比較的単純なものなので, 頑張ればモバイル推論できるものと思われる.
ただし KenLM を使っているところがあるようなので, この部分は書き直しが必要かもしれない.
(いずれにせよ KenLM は LGPL 2.1 なので, モバイルで製品化したいときは KenLM 部分は書き直ししたほうがベター)
Deepspeech
Mozilla 製.
pip install でインストールできて便利. Android などモバイルでもビルドできる模様(動作未確認)
Mozilla deepspeech で speech-to-text する(English). アン・ハサウェイさんのスピーチの文字起こしにもチャレンジ
https://qiita.com/syoyo/items/9e5898344403b896bf04
Kaldi
それなりに昔からあり, 利用されてきたらしい. Montreal forced aligner でも利用している.
wav2letter++
facebook 製.
C++ で, 音声認識向けに高速化, 効率化しているのが特徴.
C++ で書かれていて, C++ おじさんから見ると一見いい感じで食いつきたくなりますが, よくよくコードを見たりビルドしてみると, flashlight, arrayfire などいろいろと依存ライブラリが多いため(KenLM も含まれる), これをいじりたいとは思わないですね...
まとめ
2019 年 9 月 25 時点では, NeMo からいろいろと辿っていくのがよさそう.