Open AIのAPIでWhisperは使いましたが、Azure Open AIでも使ってみようと思います。中身は変わらないはず。
モデルのデプロイまで
リソース作成 - 米国中北部または西ヨーロッパ リージョン
そもそも全てのリージョンで使える訳じゃないってのがあります。
https://learn.microsoft.com/ja-jp/azure/ai-services/openai/whisper-quickstart?tabs=command-line&pivots=rest-api
米国中北部または西ヨーロッパ リージョンってあるので米国中北部で作ってみます。
モデルデプロイ - Whisper
モデルデプロイ > 展開の管理
、ここ別タブで開く様にしてほしすぎる。
選択肢にWhisperが!!!
日本リージョンとか選んでなんで選択肢にでないんだろうとか悩んでたので割とこれだけで嬉しい。
Whisperを選んで進みます。
n0bisuke-whisper
って名前にしてデプロイしておきます。
Node.jsから触る
$ npm i @azure/openai
const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const fs = require('node:fs/promises');
const azureApiKey = `XXXXXXX`;
const endpoint = `https://YYYYYYYY.openai.azure.com/`;
async function main() {
console.log("== Transcribe Audio Sample ==");
const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
const deploymentName = "n0bisuke-whisper"; //デプロイ名
const audio = await fs.readFile('./akiba.mp3');
const result = await client.getAudioTranscription(deploymentName, audio, {language: 'ja'});
console.log(`Transcription: ${result.text}`);
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
出力結果は以下の様になりました。
$ node app.js
== Transcribe Audio Sample ==
Transcription: こんにちは。秋葉原の電気街口にいます。
生成された音声を元に戻した感じですが、完璧ですね。。
一応この辺を見ると第3引数でオプションを渡せてLangage指定ができそうでした。精度上がるっぽいけどどうなんでしょう。