「JoeyNMT」で音声データを使った自動音声認識、音声翻訳モデルを作る:「Python+PyTorch」と「JoeyNMT」で学ぶニューラル機械翻訳(終)
精度向上により、近年利用が広まっている「ニューラル機械翻訳」。その仕組みを、自分で動かしながら学んでみましょう。第3回は「JoeyNMT」を音声に対応させて、音声認識や音声翻訳のタスクをエンドツーエンドで解くモデルを構築してみましょう。
ハイデルベルク大学の博士課程に在籍しながら、八楽という会社で「ヤラクゼン」の開発に携わっている太田です。ヤラクゼンは、AI翻訳から翻訳文の編集、ドキュメントの共有、翻訳会社への発注までを1つにする翻訳プラットフォームです。
第2回は、Discordのチャットbotでニューラル機械翻訳を試す方法と「JoeyNMT」のカスタマイズ方法を紹介しました。第3回は「JoeyNMT」を音声に対応させて、音声認識や音声翻訳のタスクをエンドツーエンド(E2E)で解くモデルを構築する方法を紹介します。
「自動音声認識」タスクとは
自動音声認識(Automatic Speech Recognition: ASR)といえば、ある言語での音声の入力を受け付け、音声を書き起こしたテキストを返すタスクです。音声翻訳(Speech Translation: ST)は、ある言語で音声の入力を受け付ける部分は同じですが、別の言語に翻訳されたテキストを出力するタスクです。今回紹介するE2Eは、入力音声の言語で書き起こしせず、ダイレクトに別の言語のテキストを生成するモデルになります。
例えば、日本語音声を入力してその日本語を書き起こすのは自動音声認識タスク、日本語音声を入力して日本語が書き起こされることなくダイレクトに英語のテキストに翻訳されるのはE2E音声翻訳タスクに分類されます。
本記事では、音声認識と音声翻訳を合わせて、Speech-to-Text(S2T)タスクと呼ぶことにします。
インストール
S2TのためのコードをGitHubにアップロードしました。まずは下記リポジトリからインストールしてください。
$ pip install git+https://github.com/may-/joeys2t.git
モデルの構成
テキストの機械翻訳のモデルをベースに、S2Tに対応させるため、以下のモジュールを実装していきます。
それでは一つ一つ詳しく見ていきましょう。
入出力フォーマット
Copyright © ITmedia, Inc. All Rights Reserved.