LoginSignup
8
4

Azure OpenAI Whisper の申請から利用までの手順をまとめた

Posted at

はじめに

Azure OpenAIと聞くと、GPTモデルを想定する人が多いと思いますが、Whisperという音声ファイルから文字起こしをしてくれるモデルがあります。Whisperを使うことで、ボイスユーザーインターフェース(Voice User Interface: VUI)を開発することができるため、音声コマンドを受け入れたり、ユーザーとの対話を可能にするアプリケーションを構築できるなど、開発の幅が広がります。Whisperはまだ発展途中のモデルではありますが、今後さらに利用されるようになることを期待して、Whisperモデルの申請手順と利用方法を本記事にまとめます。

Azure OpenAI Whisperとは

Whisperモデルは、音声ファイルの文字起こしに使用できるOpenAIの音声テキスト変換モデルです。 このモデルは、英語の音声を含む音声ファイルの文字起こしに最適化されていますが、他の言語の音声を含む音声ファイルを文字起こしにも使用できます。

2023年11月現在、Azure OpenAI Whisperが利用できるのは、North Central USWest Europeの2つのリージョンに限ります。
また、Azure AI Speechを介したWhisperモデルは、East USSoutheast AsiaWest Europeの3つのリージョンのみで利用可能です。

Azure AI Speech

Azureでは文字起こしをができるモデルとして、Whisperモデルの他に、Azure AI Speechモデルが用意されています。ユースケースによって、Azure AI Apeechモデルの方が適している場合があるので、Azure AI Speechの利用を一度検討してみるとよいです。以下に、主なシナリオに対してのそれぞれのモデルの比較表をまとめます。

項目 Azure OpenAI Whisper Azure AI Speech
音声ファイルの高速処理
音声ファイルの英語翻訳
サポートされているファイル形式 mp3、mp4、mpweg、mpga、m4a、wav、webm mp3、wav、ogg
音声ファイルの最大サイズ 25 MB 1 GB
リアルタイム文字起こし ×
通話の概要 ×
話者の区別 ×

(〇:奨励、△:利用可能、×:利用不可)

申請方法

Azure OpenAI Whisperを利用するには2023年11月現在、Azure OpenAI Serviceの利用申請が必要になります。以下の申請フォームから必要項目を入力していただき、提出してください。

登録プロセスについては、Microsoftの公式ドキュメントにまとめられています。
https://learn.microsoft.com/en-us/legal/cognitive-services/openai/limited-access#registration-process

申請フォームの回答に関する注意事項

2023年11月現在の主な注意事項は以下になります。

  • Azure OpenAIサービスは登録が必要で、現在は承認された企業顧客およびパートナーのみが利用できます。
  • 医療のような高いリスクの分野での利用は承認可能性が低く、内部の向けの利用は承認可能性が高いです。
  • 個人メールでの申請や、承認された企業顧客ではない場合、拒否される可能性があります。

以下が注意事項に関する文書になります。
image.png

申請フォームの回答項目

2023年11月現在の回答項目は以下の通りです。

  • 氏名(First Name, Last Name)
  • Azure OpenAI Serviceを利用申請するサブスクリプション数
  • 利用申請するサブスクリプションID
  • 申請者の会社メールアドレス(※1)
  • 会社名情報(会社名、住所、都市名、都道府県、郵便番号、国、会社HPのURL、電話番号、業態(※2))
  • Microsoft社員の連絡先(氏名、メールアドレス)(※3)
  • 顧客の代わりの申請ではないことの確認
  • 利用申請するモデルの選択(※4)
  • (Text and codeモデルの利用用途の回答)(※5)
  • Azure OpenAI Service規約への同意
  • Azure OpenAI Serviceのデータ処理への同意(※6)
  • サービス改善へのアンケート

(※1) 申請者の会社メールアドレス

必ず会社のメールアドレスを入力してください。
image.png

(※2) 企業の業態

所属企業の業態を選択してください。

ISV: 独自の製品やサービスを開発/提供する企業
SI: システムインテグレーター
MSP: Microsoft製品を提供する企業
Internal: Microsoft社員
MVP: Microsoftに認定された人
Other: 顧客、など

image.png

(※3) Microsoft社員の連絡先

Microsoft社員の連絡先を持つ場合は入力してください。任意の回答項目です。
image.png

(※4) 利用申請するモデルの選択

必要なモデルを選択してください。

Text and code models: テキストやコードを生成するモデル(GPT-3.5GPT-4、等)
DALL-E 2 models: 文字から画像を生成するモデル
OpenAI Whisper model: 音声から文字起こしをするモデル

image.png

(※5) Text and codeモデルの利用用途の回答

利用申請でText and code modelを選択した場合のみ回答が必要になります。Text and code modelの利用用途を回答してください。利用用途として挙げられているのは以下の項目になります。

  • 会話エージェントとの対話
  • 会話エージェントの作成
  • コード生成、変換シナリオ向けの利用
  • 報道・解説向けの利用
  • MVPRDによるデモへの使用
  • 質問応答のための利用
  • データの分類、分析、抽出
  • ソース文書の検索
  • コンテンツの要約
  • 特定トピックの執筆支援
  • Azure OpenAIカスタムモデルの作成

image.png

image.png

(※6) Azure OpenAI Serviceのデータ処理への同意

同意をする場合は「Yes, I attest」のチェックボタンを押してください。
image.png

Azure OpenAIサービスに提供されたデータの処理、使用、保存方法

Azure OpenAI Serviceに関するデータとプライバシーに関する内容は、以下の公式ドキュメントでまとめられています。

詳しくは公式ドキュメントをあたってもらえればと思いますが、要旨は以下になります。(わかりやすいために表現を一部変えている部分がございます。詳細はドキュメントをご確認ください。)

【データ利用規則】

  • OpenAI、マイクロソフト、第三者、のモデル・製品・サービスの改善には使用されません。
  • モデルはステートレスであり、モデルにプロンプトは格納されません。また、プロンプトと生成コンテンツは、モデルのトレーニング、再トレーニング、改善、には使用されません。(ただし、学習データを利用してファインチューニングを行う場合は、ユーザー専用のAzure OpenAIモデルを利用することができます。)
  • Azure OpenAIでは、プロンプト、生成されたコンテンツ、プロンプトに含まれる拡張データ、トレーニングデータ、検証データ、が処理されます。
  • 顧客のプロンプトと生成コンテンツは、顧客のAzure OpenAIリソースがデプロイされているAzureリージョンに格納されます。
  • on your dataを使ったグラウンディングでも、データは保存元からAzure OpenAIにコピーされずに、接続されたデータソースから関連データを取得することで、プロンプトを拡張します。
    image.png

on your dataの裏側ではAzure Cognitive Searchが利用されてグラウンディングされています。

【コンテンツフィルターと不正使用の監視】

  • Azure OpenAI Serviceの有害な使用のリスクを軽減するために、Azure OpenAI Serviceにはコンテンツフィルタリングと不正使用監視機能の両方が含まれています。
  • コンテンツフィルタリングは、プロンプトと生成データをリアルタイムで評価し、有害なコンテンツの種類をチェックして、設定されたしきい値を超えるコンテンツの生成を停止するように構成しています。
    image.png
  • 不正使用を検出・軽減するために、Azure OpenAIはすべてのプロンプトと生成されたコンテンツを最大で30日間安全に保存しています。
  • 機密性が高かったり法的に規制されている入力データの処理を含む場合で、有害な出力や誤用の可能性が低い場合では、不正使用の監視をオフにしてプロンプトや回答を保存させないことが可能です。
  • 不正使用の可能性を評価する人間のレビュー担当者は承認されたMicrosoftの従業員であり、不正使用監視システムによってフラグが立てられた場合にのみ、プロンプトや生成データにアクセス可能です。

コンテンツフィルターについては以下の公式ドキュメントでまとめられています。
https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/content-filter?tabs=python
コンテンツフィルターには、4つの重要度レベルと4つのカテゴリ(憎悪、性的、暴力、自傷行為)があります。2023年11月現在でプレビューにはなりますが、各カテゴリに対して重大度レベルでフィルター処理の設定が可能です。

申請フォームの回答完了画面

送信ボタンを押すと、以下のようなサンクスページが表示されます。Text and code modelsを利用申請した場合は10日以内での審査が行われるそうです。DALL-E 2 modelsを利用申請した場合は明確な審査期間が書かれていないため、必要でなければDALL-E 2 modelsの利用申請をしないほうが、早くAzure OpenAI Serviceを利用できるようになるかもしれません。

image.png

登録した会社のメールアドレス宛にも、サンクスメールが届いていました。

image.png

私はMicrosoftの社員であることが関係しているとは思いますが、当日の18:00に承認された旨のメールを受け取りました。(申請から承認まで1時間以内で完了。)

モデルのデプロイ方法

MicrosoftからAzure OpenAI Serivceの承認メールを受け取ったら、Azureポータルでモデルをデプロイしていきます。AzureポータルでAzure OpenAIリソースを作成後、「Azure OpenAI Studioに移動する」を押します。

image.png

Azure OpenAI Studioに移動後、「デプロイ」>「+新しいデプロイの作成」を選択します。するとモデルのデプロイをするモーダルが表示されるため、モデルを「whisper」にします。

image.png

モデルバージョンやデプロイ名を入力した後、「作成」を押すとモデルのデプロイ完了です。

image.png

Whisperモデルの利用

2023年11月現在、Whisperモデルを利用するためのSDKは用意されていないため、REST APIを利用するしかありません。本記事では、REST APIを使って、コマンドラインとPythonのそれぞれでWhisperモデルを利用してみます。

事前準備

Whisperモデルを利用するために、事前準備をします。

キーとエンドポイントを取得

Azureポータルで、「キーとエンドポイント」を選択し、「キー1」と「エンドポイント」をコピーしておきます。
image.png

サンプルオーディオファイルを入手

以下のリポジトリから、サンプルの音声ファイルを取得してください。(私はwikipediaOcelotをダウンロードしました。)

コマンドラインでの利用

コマンドラインを開き、以下のコマンドを実行します。<AZURE_OPENAI_ENDPOINT><AZURE_OPENAI_KEY>は、先ほどコピーしたキーとエンドポイントを設定してください。<YOUR_DEPLOYMENT_NAME>は、Azureポータルで入力したモデルのデプロイ名を設定してください。

bash
curl <AZURE_OPENAI_ENDPOINT>/openai/deployments/<YOUR_DEPLOYMENT_NAME>/audio/transcriptions?api-version=2023-09-01-preview \
 -H "api-key: <AZURE_OPENAI_KEY>" \
 -H "Content-Type: multipart/form-data" \
 -F file="@./wikipediaOcelot.wav"

実行結果は以下のようになりました。

image.png

コマンドラインでの利用は以下のMicrosoft公式ドキュメントを参考にしました。

Pythonでの利用

まず、必要なライブラリをインストールします。

bash
pip install requests

Pythonのソースコードは以下になります。

main.py
import requests

azure_openai_endpoint = "<AZURE_OPENAI_ENDPOINT>"
deployment_name = "<YOUR_DEPLOYMENT_NAME>"
api_version = "2023-09-01-preview"
azure_openai_key = "<AZURE_OPENAI_KEY>"
file_path = "./wikipediaOcelot.wav"

url = f"{azure_openai_endpoint}/openai/deployments/{deployment_name}/audio/transcriptions?api-version={api_version}"

headers = {
    "api-key": azure_openai_key,
}

files = {
    "file": (file_path, open(file_path, "rb")),
}

response = requests.post(url, headers=headers, files=files)

if response.status_code == 200:
    print("API call successful. Response:")
    print(response.json())
else:
    print(f"API call failed with status code {response.status_code}. Response:")
    print(response.text)

コマンドラインで、main.pyを実行します。

python main.py

実行結果は以下のようになりました。
image.png

ソースコードを以下のGitHubリポジトリに保存しましたので、必要であればクローンして使ってみてください。

おわりに

本記事では、Azure OpenAI Whisperの利用申請からREST APIを使ったWhisperの利用方法を、コマンドラインとPythonの2通りで紹介しました。Azure AI Speechと比較してできることが少ないWhisperですが、今後はリアルタイムな文字起こしなど、できることが増えていってほしいと思います。

8
4
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
8
4