音声認識

完了

詳細については、「 テキストと画像 」タブを参照してください。

音声認識は、多くの場合、 音声テキスト変換 (STT) と呼ばれ、アプリとエージェントが音声入力に応答できるようにする AI 機能です。 音声認識では、読み上げられた単語が読み上げられ、データ (通常はテキスト) に変換されます。 音声テキスト変換ソフトウェアでは、通常、次のような複数のモデルが使用されます。

  • オーディオを音素 (特定のサウンドの表現) に変換する 音響 モデル。
  • 音素を単語にマップする 言語 モデル。

AI 音声が認識する単語はテキストに変換されます。 このテキストは、クローズド キャプションの提供、通話トランスクリプトの作成、メモのディクテーションの自動化など、さまざまな目的で使用できます。

Azure Speech - 音声テキスト変換

Azure Speech には、マイクまたはオーディオ ファイルからの音声入力を処理するために使用できる 音声テキスト変換 API が含まれています。

API (アプリケーション プログラミング インターフェイス) は、あるソフトウェア アプリケーションが別のアプリケーションの機能またはデータと通信して使用できるようにする一連のルールとエンドポイントです。

Microsoft Foundry は、モデル、ツール、データ、サービスを 1 か所にまとめることで、開発者が AI アプリケーションとエージェントを構築、テスト、デプロイするのに役立つ Microsoft プラットフォームです。

新しい Microsoft Foundry ポータルでは、Foundry プレイグラウンドで Azure Speech の音声テキスト変換機能を調べることができます。 プレイグラウンドにアクセスするには、[ ビルド ] ページに移動し、[ モデル] に移動し、[ AI サービス ] タブに移動します。タブには、 Azure Speech - Speech to Text など、テストに使用できる AI サービスの選択が表示されます。

プレイグラウンドでは、オーディオ ファイルをアップロードするか、自分で話して録音することができます。 Azure Speech は言ったことを文字起こしし、独自のアプリケーションがオーディオ入力にどのように応答するかを感じさせます。

Foundry プレイグラウンドの音声テキスト変換のスクリーンショット。

Foundry ポータルのプレイグラウンドは、Azure Speech を試すのに最適な場所ですが、アプリケーションで音声テキスト変換を使用するには、コードを記述する必要があります。

Azure 音声テキスト変換 SDK の使用

Azure Speech – Speech-to-Text SDK は、アプリケーションが音声音声を書き込みテキストに変換できるクライアント ライブラリです。 音声テキスト変換 SDK は、音声認識をアプリケーションに簡単に追加できるように設計されています。

クライアント ライブラリは、開発者がアプリケーションでサービスまたは API と簡単に通信するために使用できる、既製のコードのセットです。

SDK を使用すると、アプリケーションで次のことが可能になります。

  • マイク、オーディオ ファイル、またはオーディオ ストリームからオーディオをキャプチャまたは送信する
  • そのオーディオを Azure Speech に安全に送信する
  • ほぼリアルタイムで、または処理が完了した後に文字起こしされたテキストを受信する

SDK は、ネットワーク、認証、オーディオ ストリーミング、応答解析を処理するため、開発者はアプリケーション ロジックに集中できます。

アプリケーションの開発

Speech to Text SDK は、通常、アプリケーションのクライアント層またはサービス レイヤーで使用されます。 SDK は、アプリケーション コードと Azure Speech サービスの間のブリッジとして機能します。

Azure Speech Python SDK を使用するには、互換性のあるバージョンの Python と Azure Speech Python SDK がインストールされている必要があります。

Python SDK は、次を使用して Visual Studio Code ターミナル にインストールできます。

pip install azure-cognitiveservices-speech

アプリケーション コードは、Visual Studio Code などの コード エディターで記述されます。 コード エディターの ターミナル は、エディター内の組み込みのコマンド ライン ウィンドウであり、開発環境を離れることなくコマンドを実行できます。

Azure Speech を使用するには、Foundry リソースも作成する必要があります。 Foundry リソース エンドポイントとキーは、接続を認証するためにコードで使用されます。

Python SDK をインストールし、Foundry リソースを作成したら、プログラムを作成して実行できます。 次の Python コードについて考えてみましょう。 これを実行すると、次のようになります。

  1. アプリが Speech SDK を初期化します。エンドポイントと認証 (キーまたは Microsoft Entra ID) を提供します
  2. オーディオがキャプチャまたは読み込まれる: マイク入力またはオーディオ ファイル/ストリーム
  3. オーディオが Azure Speech に送信される: SDK はオーディオを安全にストリーミングまたはアップロードします
  4. クラウドで音声認識が実行される: Azure の音声モデルでオーディオが分析される
  5. テキストの結果が返されます。アプリは認識されたテキストとオプションのメタデータを受け取ります
import azure.cognitiveservices.speech as speechsdk

# Set up the speech config using resource endpoint
endpoint_url = "ENDPOINT"
speech_key = "FOUNDRY_KEY"

speech_config = speechsdk.SpeechConfig(
    subscription=speech_key,
    endpoint=endpoint_url
)

# Create a recognizer with microphone input
audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True)
speech_recognizer = speechsdk.SpeechRecognizer(
    speech_config=speech_config, 
    audio_config=audio_config
)

# Event handlers
def recognized_handler(evt):
    print(f"Recognized: {evt.result.text}")

def recognizing_handler(evt):
    print(f"Recognizing: {evt.result.text}")

# Connect event handlers
speech_recognizer.recognized.connect(recognized_handler)
speech_recognizer.recognizing.connect(recognizing_handler)

# Start continuous recognition
speech_recognizer.start_continuous_recognition()
print("Say something...")

# Keep the program running
input("Press Enter to stop...")
speech_recognizer.stop_continuous_recognition()

クライアント アプリの例

たとえば、ボイスメール メッセージを自動的に文字起こしする軽量アプリを開発するとします。 コード エディターには、1 つのオーディオ ファイルと、アプリケーション コードを含む 1 つの Python ファイルがあります。

オーディオ ファイルが開いている Visual Studio Code のスクリーンショット。

ボイスメール録音を含むオーディオ ファイルがあるとします。 メッセージを文字起こしするには、まず、エンドポイントとキー、および文字起こしするオーディオ ソースを指定します。 次に、結果を表示する前に、 SpeechRecognizer オブジェクトを使用して文字起こしを実行します。

Visual Studio Code の音声テキスト変換 Python コードのスクリーンショット。

コードを実行すると、文字起こしテキストが表示されます。

ターミナルが開き、音声テキスト変換の結果が表示された Visual Studio Code のスクリーンショット。

オーディオ処理オプション

Azure Speech の音声テキスト変換 API を使用して、オーディオのテキスト形式へのリアルタイムまたはバッチ文字起こしを実行できます。 文字起こしのオーディオ ソースには、マイクまたはオーディオ ファイルからのリアルタイム オーディオ ストリームを使用できます。

リアルタイムの文字起こし: リアルタイムの音声テキスト変換を使用すると、オーディオ ストリームをテキストに文字起こしできます。 リアルタイムの文字起こしは、プレゼンテーション、デモ、またはその他の人が話しているシナリオに対して使用できます。

リアルタイムの文字起こしが機能するためには、アプリケーションでマイクやオーディオ ファイルなどのその他の音声入力ソースからの受信オーディオを取得する必要があります。 アプリケーション コードによってオーディオをサービスにストリームし、文字起こしされたテキストを返します。

バッチ文字起こし:すべての音声テキスト変換シナリオがリアルタイムであるとはいえません。 オーディオ録音がファイル共有、リモート サーバー、または Azure Storage に保存されている場合もあります。 Shared Access Signature (SAS) URI を持つオーディオ ファイルを示し、文字起こし結果を非同期的に受信できます。

バッチ ジョブは "ベストエフォート ベース" でスケジュールされるため、バッチ文字起こしは非同期で実行する必要があります。 通常、ジョブの実行は要求から数分以内に開始されますが、ジョブが実行状態にいつ変わるかは推定できません。

Azure Speech での音声認識は、録音されたオーディオを文字起こししたり、音声キャプションを自動化したりするソリューションを構築するための優れた方法です。 次に、音声合成をアプリケーションに組み込む方法について説明します。