1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure AI SpeechでのIP制限設定

Last updated at Posted at 2024-04-25

Azure AIではAI音声解析サービスの「AI Speech」が提供されています。

例えば、音声の文字起こしやリアルタイム翻訳、話者認識など音声を解析する様々な機能が提供されており、Azure Portal上のGUI上で簡単にサービスを構築することができます。

しかしAI Speechをデフォルトで作成した場合はパブリックアクセスが許可されており、セキュアに利用できる環境(IPアドレス制限やプライベートエンドポイントなど)を準備する場合、いくつか手順が必要となりますのでその方法をご紹介します。

参考:https://learn.microsoft.com/ja-jp/azure/ai-services/speech-service/speech-services-private-link?tabs=portal

カスタムドメインの作成

AI SpeechはAzure OpenAIやDocument IntelligenceなどのAzure AIサービスとは異なり、アクセス制限をする際はまず最初にカスタムドメインを作成する必要があります

ただカスタムドメインとはいえ証明書やDNS等の設定のようなものは不要で、Azure PortalのGUI上で簡単に設定できます。

Azure Speechリソースの「ネットワーク」からカスタムドメインを作成します

1.png

カスタムドメイン作成後は、下記のようにネットワーク設定が可能となります

2.png

パブリックアクセス制限(IP制限)

ネットワーク設定から許可するアクセス先を「選択したネットワークとプライベートエンドポイント」に指定し、アクセス許可したいIPアドレスを追加します。

現在アクセス中のIPアドレスを許可する場合は「クライアントIPアドレス」の追加にチェックを入れます。

IPアドレスの設定が完了したら保存します。

3.png

AI Speechの利用方法(Node.jsコンソールアプリ)

次に、アプリからアクセス制限したAI Speechへのアクセスする方法をご紹介します。

ソースコードは下記Microsoft公式のクイックスタートをベースに説明します。音声ファイルの内容を文字起こしする簡単なNode.jsのコンソールアプリです。

1.SDKのインストール

まずは、AI SpeechのSDKをインストールします

npm install --save microsoft-cognitiveservices-speech-sdk

2. speechConfigの変更

次にSpeechRecognition.jsソースコード内のspeechConfigの設定を下記の通り変更します

  • SPEECH_ENDPOINTを下記の内容に設定します
    • wss://<カスタムドメイン>.cognitiveservices.azure.com/stt/speech/recognition/conversation/cognitiveservices/v1?language=<言語>
  • speechConfigの取得箇所をfromSubscriptionからfromEndpointに変更し、上記カスタムドメインを元にAI Speechのインスタンスを作成できるよう変更します
const speechsdk = require("microsoft-cognitiveservices-speech-sdk");

const SPEECH_ENDPOINT = "wss://<カスタムドメイン>/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US";
const SPEECH_KEY = "<Speech APIキー>";
const speechConfig = sdk.SpeechConfig.fromEndpoint(new URL(SPEECH_ENDPOINT), SPEECH_KEY);

カスタムドメインは、AI Speechの「エンドポイント」から確認できます。ここからhttps://を除いた文字を<カスタムドメイン>に設定します
<ドメイン名>.cognitiveservices.azure.comの形式です)

4.png

3.アプリの実行

音声ファイル(サンプルの場合YourAudioFile.wav)を上記jsファイルと同じ階層に配置し、下記コマンドから実行します

node.exe SpeechRecognition.js

実行後、下記のように音声の文字起こし結果が取得できます。
(下記内容はMicrosoft公式サンプル内のこちらの音声ファイルを文字起こしした結果となります)

RECOGNIZED: Text=I'll talk for a few seconds so you can recognize my voice in the future.

許可したIP以外で同じコマンドを実行すると、401が返りアクセスがブロックされていることが確認できます。

CANCELED: Reason=0
CANCELED: ErrorCode=4
CANCELED: ErrorDetails=Unable to contact server. StatusCode: 1006, wss://<カスタムドメイン>/stt/speech/recognition/conversation/cognitiveservices/v1?language=en-US Reason:  Unexpected server response: 401

まとめ

今回は、Azure AI Speechのアクセス制限についてご紹介しました。次回は、プライベートエンドポイントを利用することでよりセキュアな環境を構築する方法についてもご紹介します

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?