LoginSignup
6
8

More than 1 year has passed since last update.

WhisperX(音声認識 + アラインメント) のメモ

Last updated at Posted at 2023-01-02

Whisper で音声認識 + 単語(word)単位でのアラインメント(単語がどの時刻に出てくるか)までやってくれます!

音声のアラインメントについてのメモ
https://qiita.com/syoyo/items/e43d9d5d564fded3a2b6

インストールは特に難しいものではありません.

中身的には Whisper + word2vec の wrapper という感じでしょうか.

README.md には書かれていないのですが, 日本語対応がされています.
(単語単位でアラインメントしてくれます)

https://github.com/m-bain/whisperX/pull/8
https://github.com/m-bain/whisperX/blob/main/EXAMPLES.md

--language ja 指定すると wav2vec にjonatasgrosman/wav2vec2-large-xlsr-53-japanese を使うようになっています

実行

最高性能でやります. wav2vec2-large-xlsr-53-japanese は model 1.2 GB くらいでした. Whisper large (5 GB くらい)より少ないので, 12 GB のメモリある GPU なら動くと思われます(3090 では動作確認).

$ whisperx --model large-v2 input.wav --language ja

image.png

input.wav.word.srt に, ワード(日本語の場合は単語)ごとのアラインメント結果が得られます.

image.png

Voiala!

日本語で音素単位とかでアラインしたい...

このあと text-to-speech させたり, 顔認識してそれぞれの発音時点での顔表情を取得したいなどで, 音素(phoneme)単位でのアラインメントがほしいときがあります.

音素とか取り出したい場合はここから mecab か openjtalk あたりで変換するのがよいでしょうか(文節も解析して無声音とかも扱えたりするじゃろか?)

tdmelodic と合わせてアクセント推定するのもできそうです!

そのうち transformer あたりで音声あたえたら音素やアクセント推定など一式ぺろっと推定してくれるモデルがでてきそうですネ.

6
8
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
6
8