バッチ文字起こし用のオーディオ ファイルを検索する
バッチ文字起こしは、ストレージ内の大量のオーディオを文字起こしする場合に使用されます。 バッチ文字起こしは、Azure の内部または外部のオーディオ ファイルにアクセスできます。
ソース オーディオ ファイルが Azure の外部に格納されているときは、パブリック URI ("https://crbn.us/hello.wav" など) を使用してアクセスできます。 ファイルには直接アクセスできる必要があります。認証を必要とするか、ファイルにアクセスする前に対話型スクリプトを呼び出す URI はサポートされません。
Azure Blob Storage に格納されているオーディオ ファイルには、次の 2 つの方法のいずれかを使用してアクセスできます。
文字起こしを作成するときに、1 つまたは複数のオーディオ ファイルを指定できます。 要求ごとに複数のファイルを指定するか、文字起こしするオーディオ ファイルを含む Azure Blob Storage コンテナーをポイントすることをお勧めします。 バッチ文字起こしサービスでは、送信された多数の文字起こしを処理できます。 サービスによってファイルが同時に文字起こしされ、ターンアラウンド時間が短縮されます。
サポートされるオーディオ形式とコーデック
バッチ文字起こし API (および ファスト トランスクリプション API) では、次のような複数の形式とコーデックがサポートされています。
- WAV
- MP3
- OPUS/OGG
- FLAC
- WMA
- AAC
- WAV コンテナー内の ALAW
- WAV コンテナー内の MULAW
- AMR
- WebM
- M4A
- SPEEX
Note
バッチ文字起こしサービスは GStreamer を統合しており、エラーを返さずにさらに多くの形式とコーデックを受け入れる場合があります。 WAV (PCM エンコード) や FLAC などのロスレス形式を使用して、文字起こしの最高品質を確保することをお勧めします。
Azure Blob Storage のアップロード
オーディオ ファイルが Azure Blob Storage アカウントにある場合は、個々のオーディオ ファイルまたは Azure Blob Storage コンテナー全体の文字起こしを要求できます。 BLOB コンテナーに文字起こしの結果を書き込むこともできます。
Note
BLOB とコンテナーの制限については、バッチ文字起こしのクォータと制限に関する記事を参照してください。
次の手順に従って、ストレージ アカウントを作成し、ローカル ディレクトリから新しいコンテナーに wav ファイルをアップロードします。
- Azure portal に移動し、ご自分の Azure アカウントにサインインします。
- Azure portal でストレージ アカウント リソースを作成します。 Speech リソースと同じサブスクリプションとリソース グループを使用します。
- ストレージ アカウントを選択します。
- 左側のペインの [データ ストレージ] グループで、[コンテナー] を選択します。
- [+ コンテナー] を選択します。
- コンテナーの名前を入力して、[作成] を選択します。
- 新しいコンテナーを選択します。
- [アップロード] を選択します。
- アップロードするファイルを選択し、[アップロード] を選択します。
信頼された Azure サービスのセキュリティ メカニズム
このセクションでは、信頼された Azure サービスのセキュリティ メカニズムを使用して、Azure Storage アカウント内のバッチ文字起こしソース オーディオ ファイルへのアクセスを設定および制限する方法について説明します。
Note
信頼された Azure サービスのセキュリティ メカニズムでは、Azure Blob Storage を使用してオーディオ ファイルを格納する必要があります。 Azure Files の使用はサポートされていません。
このセクションのすべてのアクションを実行すると、ストレージ アカウントの次のように構成されます。
- すべての外部ネットワーク トラフィックへのアクセスが禁止されます。
- ストレージ アカウント キーを使用したストレージ アカウントへのアクセスが禁止されます。
- Shared Access Signature (SAS) を使用したストレージ アカウント BLOB ストレージへのアクセスが禁止されます。
- 選択した Speech リソースへのアクセスは、システム割り当てマネージド ID というリソースを使用して許可されます。
このため、ストレージ アカウントは事実上、完全に "ロック" され、新しい構成が適用された時点までに既に存在していたオーディオ ファイルの文字起こし以外のシナリオでは使用できません。 オーディオ データのセキュリティに関する限り、この構成をモデルとして検討し、ニーズに応じてカスタマイズする必要があります。
たとえば、選択したパブリック IP アドレスと Azure 仮想ネットワークからのトラフィックを許可できます。 また、プライベート エンドポイントを使用したストレージ アカウントへのアクセスの設定 (こちらのチュートリアルも参照)、ストレージ アカウント キーを使用したアクセスの再有効化、他の Azure の信頼されたサービスへのアクセスの許可などを行うこともできます。
Note
ストレージ アカウントをセキュリティで保護するために Speech にプライベート エンドポイントを使用する必要はありません。 セキュリティで保護されたストレージ アカウントからソース オーディオ ファイルに、またはその逆向きに個別にアクセスするとき、バッチ文字起こし API 要求にプライベート エンドポイントを使用できます。
以下の手順に従うことで、ストレージ アカウントへのアクセスを厳しく制限します。 次に、Speech リソース マネージド ID がストレージ アカウントにアクセスするために必要な最小限のアクセス許可を割り当てます。
Speech リソースのシステム割り当てマネージド ID を有効にする
次の手順に従って、バッチ文字起こしに使用する Speech リソースのシステム割り当てマネージド ID を有効にします。
Azure portal に移動し、ご自分の Azure アカウントにサインインします。
Speech リソースを選択します。
左側のペインの [リソース管理] グループで、[ID] を選択します。
[システムが割り当て済み] タブで、状態として [オン] を選択します。
重要
ユーザー割り当てマネージド ID は、バッチ文字起こしストレージ アカウント シナリオの要件を満たしません。 必ずシステム割り当てマネージド ID を有効にするようにしてください。
[保存] を選びます。
これで、Speech リソースのマネージド ID にストレージ アカウントへのアクセスを許可できるようになりました。
ストレージ アカウントへのアクセスを制限する
次の手順に従って、ストレージ アカウントへのアクセスを制限します。
重要
ストレージ アカウントのアクセスをロックダウンする前に、BLOB コンテナーにオーディオ ファイルをアップロードしてください。
- Azure portal に移動し、ご自分の Azure アカウントにサインインします。
- ストレージ アカウントを選択します。
- 左側のペインの [設定] グループで、[構成] を選択します。
- [Allow Blob public access] (BLOB パブリック アクセスを許可する) で [無効] を選択します。
- [ストレージ アカウント キーへのアクセスを許可する] を [無効] に設定します。
- [保存] を選択します。
詳細については、「コンテナーと BLOB への匿名パブリック読み取りアクセスを防ぐ」および「Azure Storage アカウントの共有キーによる承認を禁止する」を参照してください。
Azure Storage ファイアウォールを構成する
ストレージ アカウントへのアクセスが制限した場合は、特定のマネージド ID へのアクセスを許可する必要があります。 次の手順に従って、Speech リソースへのアクセスを追加します。
Azure portal に移動し、ご自分の Azure アカウントにサインインします。
ストレージ アカウントを選択します。
左側のペインの [セキュリティとネットワーク] グループで、[ネットワーク] を選択します。
[ファイアウォールと仮想ネットワーク] タブで、[選択した仮想ネットワークと IP アドレスから有効] を選択します。
すべてのチェック ボックスの選択を解除します。
[Microsoft ネットワーク ルーティング] が選択されていることを確認します。
[リソース インスタンス] セクションで、リソースの種類として Microsoft.CognitiveServices/accounts を選択し、インスタンス名としてご使用の Speech リソースを選択します。
[保存] を選択します。
Note
ネットワークの変更が反映されるまでに最大 5 分かかる場合があります。
ここまでで、ネットワーク アクセスは許可されていますが、Speech リソースはストレージ アカウント内のデータにまだアクセスできません。 Speech リソースのマネージド ID に対して特定のアクセス ロールを割り当てる必要があります。
リソースにアクセス ロールを割り当てる
次の手順に従って、Speech リソースのマネージド ID にストレージ BLOB データ閲覧者ロールを割り当てます。
重要
次の手順の操作を実行するには、ストレージ アカウントの所有者ロール以上のスコープ (サブスクリプションなど) が割り当てられている必要があります。 これは、所有者ロールのみが他のユーザーにロールを割り当てることができるためです。 詳細については、こちらを参照してください。
Azure portal に移動し、ご自分の Azure アカウントにサインインします。
ストレージ アカウントを選択します。
左側のペインの [アクセス制御 (IAM)] を選択します。
[このリソースへのアクセス権の付与] タイルの [ロールの割り当てを追加] を選択します。
[ロール] で [ストレージ BLOB データ閲覧者] を選択し、[次へ] を選択します。
[メンバー]>[アクセスの割り当て先] で [マネージド ID] を選択します。
ご使用の Speech リソースのマネージド ID を割り当て、[レビューと割り当て] を選択します。
設定を確認したら、[レビューと割り当て] を選択します。
これで、Speech リソースのマネージド ID がストレージ アカウントにアクセスできるようになり、バッチ文字起こし用のオーディオ ファイルにアクセスできます。
システム割り当てマネージド ID では、バッチ文字起こしの作成要求を実行するときに、プレーンのストレージ アカウント URL (SAS やその他の追加なし) を使用します。 次に例を示します。
{
"contentContainerUrl": "https://<storage_account_name>.blob.core.windows.net/<container_name>"
}
それ以外では、コンテナー内の個々のファイルを指定できます。 次に例を示します。
{
"contentUrls": [
"https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_1>",
"https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_2>"
]
}
バッチ文字起こしの SAS URL
Shared Access Signature (SAS) は、Azure Storage コンテナーへの制限付きアクセスを付与する URI です。 ストレージ アカウント キーを共有せずに、バッチ文字起こしファイルへのアクセスを特定の時間の範囲の間、許可するときに使用します。
ヒント
Speech リソースのみがバッチ文字起こしソース ファイルを含むコンテナーにアクセスするようにする必要がある場合、代わりに信頼された Azure サービスのセキュリティ メカニズムを使用してください。
次の手順に従って、バッチ文字起こしに使用できる SAS URL を生成します。
Azure Blob Storage のアップロードの手順を実行してストレージ アカウントを作成し、新しいコンテナーにオーディオ ファイルをアップロードします。
新しいコンテナーを選択します。
左側のペインの [設定] グループで、[共有アクセス トークン] を選択します。
[+ コンテナー] を選択します。
[アクセス許可] で、[読み取り] と [一覧表示] を選択します。
SAS URI の開始と有効期限の時刻を入力するか、既定値のままにします。
[SAS トークンおよび URL を生成] を選択します。
バッチ文字起こし要求を作成するときに SAS URL を使用します。 次に例を示します。
{
"contentContainerUrl": "https://<storage_account_name>.blob.core.windows.net/<container_name>?SAS_TOKEN"
}
それ以外では、コンテナー内の個々のファイルを指定できます。 各ファイルの読み取り (r) アクセス許可を持つ別の SAS URL を生成して使用する必要があります。 次に例を示します。
{
"contentUrls": [
"https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_1>?SAS_TOKEN_1",
"https://<storage_account_name>.blob.core.windows.net/<container_name>/<file_name_2>?SAS_TOKEN_2"
]
}