yensaki’s blog

必要なものは締め切り

動画からセリフ起こし

What is ?

動画の中の音声をセリフ起こしするプロジェクト

例: レインボーライブ36話

まだ調整中だけどこんな感じ↓

f:id:yensaki:20190721234826p:plain
プリズム土下座

とか。

f:id:yensaki:20190721234829p:plain

とか。

目的

動画の音声をテキストで扱えるようにしたい。
ゆくゆくはセリフ検索からスクリーンショットを容易に取得できるようにする狙い。

How to

  • 動画の音声ファイルを無音部分でファイル分割
  • 分割ファイルごとにテキスト起こし

戦略

  1. 音声をテキストにする方法を検討
  2. 個人が機械学習でがんばっても効果は見込めないことを悟る
  3. 利用可能なものから選択
    • Google Cloud Speech to Text
    • Amazon Transcribe
    • Watson Speech to Text
    • Bing Speech API

精度、送信可能音声の長さ、使いやすさから Google Cloud Speech to Text を採択

cloud.google.com

無音部分でファイル分割

例えば24分の音声をそのまま一括でテキスト化はしにくいし、したくない。
ゆくゆくのセリフから検索をするには当該セリフが何秒から何秒までのものかを管理したい。
一括で文字起こしをするとそれを失う。

一番容易にできそうなのは sox だった

sox.sourceforge.net

数種類検証して全体音量の1%の状態が 0.3second 続いたら無音と認識するのがそこそこ良さそうだった(※まだ要調整)。

github.com

分割ファイルごとにテキスト起こし

  1. 分割ファイルがwavでなければwavに
  2. 分割ファイルごとにCloud Speech to Text APIで送信

残る課題

  • 各分割音声ファイルの秒数位置がわからない
    • 無音秒数をsoxで即時削除していて、そのままだと各分割音声ファイルが全体の何秒から何秒なのか計算できない
  • 動画から切り出した画像集とテキストの連携
    • テキストの秒数位置から対応する画像集をまとめられるはず
  • テキストから画像検索

まだYATTEIKI