LoginSignup
11
7

More than 3 years have passed since last update.

Mozilla deepspeech で speech-to-text する(English). アン・ハサウェイさんのスピーチの文字起こしにもチャレンジ

Last updated at Posted at 2019-03-09

目的

機械学習ベースで高品質な感じの結果を得られつつも, お手軽に speech(音声データ)からテキストを生成(文字起こし. transcribe)したい.
(できればモバイル対応していそうなもので)

wav2letter++

SoTA っぽい(2019 年 3 月時点) OSS な speech-to-text では, wav2letter++ がありますが, ビルドがめんどくさいです...

flashlight と wav2letter++ をビルドするメモ
https://qiita.com/syoyo/items/e30d1612dae28b05e5e1

モバイルで動かせるかは不明です(flashlight が依存している arrayfire は, モバイル対応版ありますが, mobile 版は closed で有償っぽい)

DeepSpeech

Mozilla が Baidu の DeepSpeech (論文)をベースに TensorFlow 実装してくれているものがあります. ありがたいですね.

$ pip install deepspeech

でお手軽に使えます. 素晴らしいですね.
tensorflow-lite に変換(+ Android 動作)もできるので, モバイルで動かすのもできる... はず.
(ただし english の pretrained model は 2GB くらいあるので注意)

deepspeech は sampling rate 16kHz です. 違う sampling rate の wav を入力してもスケーリングして処理してくれますが, "結果がおかしくなるかもね" という warning が出ます.

text に変換してみる.

LJspeech の LJ001-0001.wav を変換させてみました.

TensorFlow: v1.12.0-10-ge232881
DeepSpeech: v0.4.1-0-g0e40db6
2019-03-09 20:40:42.254208: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
Loading model from file models/output_graph.pbmm
Loaded model in 0.00833s.
Loading language model from files models/lm.binary models/trie
Loaded language model in 0.178s.
Warning: original sample rate (22050) is different than 16kHz. Resampling might produce erratic speech recognition.
Running inference.
Inference took 4.193s for 13.306s audio file.
printing in the only sense with which we are at present concerned differs from most if not from all the arts and crafts represented in the exhibition

Voila! いい感じに transcribe されました.
CPU でも, 13.3 秒の入力に対して 4.19 秒で処理しています.

deepspeech には nodejs のバインディングもあるので, うまくスクリプトを組めばリアルタイム or 逐次で speech-to-text できそうですね!

アン・ハサウェイさんのスピーチを起こしてみる

いい感じに transcribe できるのを確認しましたので,
マイ・インターン(原題は The Intern)のアン・ハサウェイさん

「マイ・インターン」アン・ハサウェイに学ぶ、大人可愛いオフィスファッション
https://matome.naver.jp/odai/2144524807974815301

のスピーチを文字に起こしたくなりますね!

international women's day でのスピーチを試してみます.

Anne Hathaway on International Women's Day
https://www.youtube.com/watch?v=wdw8KNmr2pc

結果はこちら.
(一応ビデオ全部(12 分)の文字起こし処理できましたが, 最初の数 term だけ抜き出します)

THANK YOU SO MUCH FOR THOSE WORDS FOR A PRESIDENT OF THE GENERAL ASSEMBLY UNITED NATIONS YOU IN DEPUTY SECRETARY GENERAL EXECUTIVE DIRECTOR ON WOMEN THE SINGERS LADIES AND GENTLEMEN WHEN I WAS A VERY YOUNG PERSON I BEGAN MY CAREER AS AN ACTRESS WHENEVER MY MOTHER WASN'T FREE TO DRIVE ME INTO MANHATTAN FOR AUDITIONS I WOULD TAKE THE TRAIN FROM...

Voala!

素晴らしいですね.

Alignment してみると...?

ただ, この起こした文字で MFA(Montreal Forced Aligner)で LibriSpeech Lexicon でアラインメント処理しようとしたら未知の word があると warning が出ました. いくつか Lexicon に足りないものがあるようです. deepspeech で使っている lexicon があればそちらを使ってみるのがよさそうです.

TODO

  • 他の speech-to-text ツールを試す(openseq2seq など)
  • 日本語で学習ができるか検討してみる
  • モバイルで動かす
  • node.js あたりで逐次で speech-to-text web アプリを作成してくれる優秀な web ッ子若人を探す旅に出たい.
11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7