音声認識とは、機械またはプログラムが話し言葉の単語やフレーズを認識し、機械が読み取り可能な形式に変換する機能です。通常、これらのアルゴリズムの単純な実装では語彙が限られており、単語やフレーズしか認識できない可能性があります。ただし、Cloud Speech-to-Text や Amazon Transcribe などのより複雑なアルゴリズムには、豊富な語彙があり、方言、ノイズ、俗語が組み込まれています。
この記事では、次のことを説明します。
導入 音声は、単に声帯によって周囲の空気が振動することで生成される一連の音波です。これらの音波はマイクによって記録され、電気信号に変換されます。次に、信号は高度な信号処理技術を使用して処理され、音節と単語が分離されます。ディープラーニングの驚くべき進歩のおかげで、コンピューターは経験から音声を理解することも学べるようになりました。 音声認識は、音響および言語モデリングによるアルゴリズムを使用して機能します。音響モデリングは、音声とオーディオ信号の言語単位間の関係を表します。言語モデリングは、音を単語のシーケンスに一致させて、同じように聞こえる単語を区別するのに役立ちます。通常、再帰層に基づくディープラーニング モデルは、音声の時間的パターンを認識してシステム内の精度を向上させるために使用されます。隠れマルコフモデル (最初の音声認識アルゴリズムはこのアプローチを使用しました) などの他のアプローチも使用できます。この記事では、音響モデルについてのみ説明します。 信号処理 オーディオ波をアルゴリズムが処理できる要素に変換する方法はいくつかありますが、そのうちの 1 つ (このチュートリアルで使用する方法) は、等間隔のポイントで音波の高さを記録することです。 毎秒何千回も読み取り、その瞬間の音波の高さを表す数値を記録します。これは非圧縮の .wav オーディオ ファイルです。 「CD 品質」のオーディオは 44.1 kHz (1 秒あたり 44,100 回の読み取り) でサンプリングされます。しかし、音声認識の場合、16khz (1秒あたり16,000サンプル) のサンプリング レートは、人間の音声の周波数範囲をカバーするのに十分すぎるほどです。 この方法では、オーディオは数値のベクトルで表され、各数値は 1/16000 秒間隔での音波の振幅を表します。このプロセスは、次の例に示すように、画像の前処理に似ています。 ナイキストの定理 (1933 — ウラジミール コテルニコフ) のおかげで、サンプリング レートが記録したい最高周波数の 2 倍以上であれば、数学を使用して間隔を置いたサンプルから元の音波を完全に再構築できることがわかっています。 Python ライブラリ このタスクを実行するために、Anaconda 環境 (Python 3.7) と次の Python ライブラリを使用します。
1. データセット 私たちの実験では、TensorFlow が提供する音声コマンド データセットを使用します。これは、何千人もの人々が発した 30 個の短い単語の 1 秒間の発話 65,000 回で構成されています。簡単な音声コマンドを理解できる音声認識システムを構築します。データセットはここからダウンロードできます。 2. オーディオ波形を前処理する 使用されたデータセットでは、一部のレコードの継続時間が 1 秒未満であり、サンプリング レートが高すぎます。そこで、音波を読み取り、次の前処理手順を使用してこの問題を解決してみましょう。実行する 2 つの手順は次のとおりです。
次の Python コード スニペットでこれらの前処理手順を定義しましょう。
上記から、信号のサンプリング レートは 16000 Hz であることがわかります。音声関連の周波数のほとんどは 8000 Hz であるため、8000 Hz に再サンプリングします。 2 番目のステップはラベルを処理することです。これは多目的問題なので、ここでは出力ラベルを整数エンコーディングに変換し、整数でエンコードされたラベルをワンホット ベクトルに変換します。
前処理ステップの最後のステップは、conv1d への入力が 3D 配列である必要があるため、2D 配列を 3D に再形成することです。
3. トレーニングセットと検証セットを作成する ディープラーニング モデルを実行するには、2 つのセット (トレーニングと検証) を生成する必要があります。この実験では、データの 80% を使用してモデルをトレーニングし、残りの 20% を使用して検証しました。
4. 機械学習モデルのアーキテクチャ 私は Conv1d と GRU レイヤーを使用して音声認識用のネットワークをモデル化しています。 Conv1d は 1 次元のみで畳み込みを実行する畳み込みニューラル ネットワークですが、GRU の目標は標準的な再帰型ニューラル ネットワークの勾配消失問題を解決することです。 GRU は LSTM のバリエーションとも見なすことができます。この 2 つは設計が似ており、場合によっては同様に優れた結果を生み出すことができるためです。 このモデルは、よく知られている 2 つの音声認識方法、deepspeech h2 アルゴリズムと Wav2letter++ アルゴリズムに基づいています。次のコードは、Keras を使用して提案されたモデルを示しています。
注: このモデルのトレーニングに CPU のみを使用する場合は、CuDNNGRU レイヤーを GRU に置き換えます。 次のステップは、多クラス分類問題であるため、損失関数をカテゴリクロスエントロピーとして定義することです。
早期停止とモデル チェックポイントは、適切なタイミングでニューラル ネットワークのトレーニングを停止し、各エポック後に最適なモデルを保存するためのコールバックです。
バッチサイズ 32 で機械学習モデルをトレーニングし、ホールドアウト セットでパフォーマンスを評価してみましょう。
このコマンドの出力は次のとおりです。 5. 視覚化 時間の経過に伴う機械学習モデルのパフォーマンスを理解するために、視覚化を活用します。
6. 予測 このステップでは、最適な重みを読み込み、オーディオを認識してテキストに変換するための関数を定義します。
検証データに基づいて予測を行います。
これは、ユーザーに音声コマンドを録音するように促すスクリプトです。独自の音声コマンドを録音し、機械学習モデルでテストすることができます。
最後に、保存した音声コマンドを読み取ってテキストに変換するスクリプトを作成します。
やっと 音声認識技術は私たちの日常生活の一部になっていますが、現時点では比較的単純なコマンドに限られています。技術が進歩するにつれて、研究者は会話の音声を理解できるよりインテリジェントなシステムを開発できるようになります。 |
<<: 理解すべき記事:この流行は7大テクノロジー企業を襲い、彼らがどう対応したかを見る
2017年7月8日、5日間にわたる第2回Taobao Maker Festivalが杭州国際博覧セン...
2008年、北京オリンピックのテクノロジーと壮大な雰囲気は世界に深い印象を残しました。 2022年...
いつの間にか、2019年は完全に私たちの前から去ってしまいました。過去1年を振り返ると、人工知能は間...
6月30日、「半導体産業展望」の報道によると、中国科学院計算技術研究所などの機関がAI技術を活用し、...
[[429450]]この記事はWeChatの公開アカウント「labuladong」から転載したもので...
この数か月の「影響」を経て、誰もが半導体不足の事実を十分に認識したと思います。2020年12月以来、...
2019年12月30日に武漢で新型肺炎が発生してから1か月以上が経ちました。マスクの値上げや品切れ...
機械学習の場合、パラメータはアルゴリズムの鍵となります。パラメータは、履歴入力データであり、モデルト...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
海外メディアの報道によると、シャコは世界で最も速い動物種の一つだが、シャコがどのようにしてこのような...
[[204536]] AIと企業にとってビッグデータの重要性とは何でしょうか?ビッグデータマイニング...
情報技術 (IT) 運用管理は、ミッションクリティカルなビジネス アプリケーションをサポートするため...