音声認識は音声の内容を文字として取り出す仕組みだ。本特集では、音声そのものの解説から音声認識モジュールの仕組み、Pythonによる音声認識のやり方までを説明する。
Transformerモデル
音声認識の分野において重要なモデルに、「Conformerモデル」があります。音声認識で非常に高い性能を持つモデルです。ここからは、Conformerモデルについて説明していきますが、Conformerモデルを理解する前に知っておくべき前提知識として、「Transformerモデル」があります。昨今の生成AIでも活用されているモデルですので、聞いたことがあると思います。
Transformerは、2017年に発表された論文「Attention Is All You Need」で提案されたモデルです。OpenAIのChatGPTにおいて、GPT-3やGPT-4などのモデルを使ったことがある読者も多いでしょう。その「GPT」は「Generative Pre-trained Transformer」の頭文字で、Transformerに基づいたモデルなのです。
Transformerモデルも、もともとは機械翻訳のために提案されたモデルです。Seq2Seq with Attentionモデルと同様に、TransformerモデルもAttention機構を用いたEncoder-Decoderモデルです。ただし、Seq2Seq with Attentionとは異なり、TransformerモデルではEncoderでもDecoderでもRNNは用いられていません。
Transformerモデルは、機械翻訳だけではなく、音声認識を含めた様々な用途で利用されています。
Self-Attention機構
Transformerモデルは、Attention機構に基づいたモデルですが、Seq2SeqのAttentionとは異なります。どこが異なっているのかを、機械翻訳の例で説明します。
Seq2SeqでのAttentionは、Decoderで生成される翻訳先の単語ごとに、Encoderに入力されたどの翻訳元の単語の状態に着目するかというのを表現する機構でした。つまり、Seq2SeqのAttentionでは、異なった言語の単語間での着目関係を保持しています。
TransformerモデルのEncoder部分で用いられるAttentionは、「Self-Attention」と呼ばれる特性を持っています。Selfと名前が付くとおり、Self-Attentionは1つの文章内にある単語間の関係性を保持するものです。
ちなみに、Seq2Seqで用いられたAttentionを、Self-Attentionと区別するときは、「Source-Target-Attention」と呼びます。
Self-Attentionの例として、
という文章を例にします(図16)。
この文章の中で「赤い」という単語に着目します。「赤い」は「自転車」の状態を表す単語であるため、「自転車」への依存関係は大きいです。その反面、「赤い」と「私」という単語は、文章内であまり関連がないため、依存関係は「自転車」に対するものより小さくなります。
このようにして、文章内のすべての単語に対して、すべての単語に対する関係性を保持しているのが、Self-Attentionです。