AzureOpenAI.fm が出てたので触ってみた
OpenAI.fm ならぬ、AzureOpenAI.fm なるものが紹介されていたので実際に試してみた様子と、背後で動いている Azure OpenAI の高度な音声モデルについて簡単に紹介します。
Azure OpenAI の高度な音声モデルである GPT-4o-Transcribe, GPT-4o-Mini-Transcribe, GPT-4o-Mini-TTS のプレビュー版を最近利用できるようになりました。本ガイドでは、これらの高度な音声機能をアプリケーションで効果的に活用するために必要な主要情報と手順を開発者向けに提供します。
🧠Azure OpenAI 音声モデルの新機能は?
Azure OpenAI は、以下の3つの強力な新しい音声モデルを、現在 East US2 の Azure AI Foundry でデプロイ可能な形で提供しています。
- GPT-4o-Transcribe と GPT-4o-Mini-Transcribe: 既存モデルを上回る精度を持つ音声からテキストへの変換(Speech-to-Text)モデル。
- GPT-4o-Mini-TTS: 音声の特性を細かく指定可能なカスタマイズ性の高いテキスト読み上げ(Text-to-Speech)モデル。
モデル比較
機能 | GPT-4o-Transcribe | GPT-4o-Mini-Transcribe | GPT-4o-Mini-TTS |
---|---|---|---|
性能 | 最高品質 | 高品質 | 最高品質 |
速度 | 高速 | 最速 | 最速 |
入力 | テキスト、音声 | テキスト、音声 | テキスト |
出力 | テキスト | テキスト | 音声 |
ストリーミング対応 | ✅ | ✅ | ✅ |
理想的な用途 | 顧客コールセンターや会議メモなど、難易度の高い音声環境での正確な文字起こし、自動化された会議メモの作成 | ライブキャプションや高速応答アプリなど、迅速な文字起こしが必要なケース、コストを抑えたいシナリオ | チャットボットやバーチャルアシスタント、アクセシビリティツール、教育アプリでの音声出力カスタマイズ |
技術的イノベーション
-
ターゲットを絞った音声事前学習
音声認識に特化した大規模データセットを使用し、微妙なイントネーションや背景雑音にも対応。 -
高度なディスティレーション手法
大型モデルの知識を小型モデルに効率的に転移しているため、推論速度を維持しながらも高い精度を実現。 -
強化学習
間違った認識や不自然な合成を減らし、ユーザが望む出力を得られるように強化学習で最適化。
📻AzureOpenAI.fm とは?
AzureOpenAI.fm は、Azure の音声認識や音声合成を活用して、オンライン上でのストリーミング配信や会話型インターフェースを提供する実験的なプラットフォームです。
プレビュー版として公開されており、Azure AI Foundry が提供する GPT-4o-Transcribe, GPT-4o-Mini-Transcribe, GPT-4o-Mini-TTS といった新しい音声モデルを組み合わせることで、リアルタイムの文字起こしや音声合成が可能になっています。
私も試しにサンプル配信を行ってみたところ、思いのほか自然な音声合成ができて驚きました。まるで「自分がラジオパーソナリティになったかのような体験」ができるという印象です。
ローカルで試してみる
AzureOpenAI.fm そのものは一般公開に向けたプレビュー状態ですが、ローカル環境で音声モデルを試すためのリポジトリが Azure OpenAI TTS Demo として公開されています。以下の手順で触ってみましょう。
Step 1: リポジトリをクローン
git clone https://github.com/Azure-Samples/azure-openai-tts-demo.git
cd azure-openai-tts-demo
Step 2: 開発環境の構築
仮想環境を作成し、依存関係をインストールします。
python -m venv .venv
source .venv/bin/activate # macOS/Linux
.venv\Scripts\activate # Windows
pip install -r requirements.txt
次に、.env
ファイルを作成して Azure の認証情報を設定します。
cp .env.example .env
# .env を開いて、AZURE_OPENAI_ENDPOINT や API キーを入力してください
AZURE_OPENAI_ENDPOINT="https://<your-resource-name>.openai.azure.com/"
AZURE_OPENAI_API_KEY="your-azure-openai-api-key"
AZURE_OPENAI_API_VERSION="2025-03-01-preview"
Step 3: Gradio サウンドボードを実行
python soundboard.py
ローカルホストで Gradio のインターフェースが立ち上がります。
いろいろなボイス設定や速度を試してみると、かなり自然な音声が生成されることに気づくはずです。
日本のプリセットを使う
標準では英語でのプリセットになっているのですが、vibe.json
のファイルを以下を書き換えと日本語のプリセットに変更することができます。また、Shuffleを押すと、事前にセットしていた別物のにランダムに切り替わります。
パターン1
パターン2
[
{
"Vibe": "NHK ナレーション風に",
"Description": "Voice Affect:落ち着きと品格を保ちながら、知的で穏やかな情緒を含む\n\nTone:中立的で誠実、わずかに温かみを持たせた真摯な語り口\n\nPacing:全体的にゆったりとしたテンポ、重要な情報の前後で一瞬スローに\n\nPronunciation:明瞭かつ正確に。「自然」「文化」「技術」など専門的・和語は丁寧に発音\n\nPauses:文末や意味の切れ目で自然な間を置き、情報を整理させる意図で挿入\n\nDialect:標準語(東京アナウンス風)。訛りは一切排除し、正統派の日本語で統一\n\nDelivery:滑らかで流れるような語り。過度な抑揚は避けつつも、抑えた感情表現で奥行きを\n\nPhrasing:文語寄りの構成をベースにしつつも、視聴者にわかりやすい平易な言葉選び",
"Script": "都市の一角で、静かに時を刻んできた建物が、今、その役割を終えようとしています。\n\n老朽化が進んだ施設の取り壊しに伴い、一部地域では交通規制が敷かれました。\n\n関係機関では、安全確保を最優先に、慎重な作業が続けられています。\n\n近隣住民からは「思い出が詰まった場所だけに、少し寂しい」といった声も聞かれました。\n\n変わりゆく風景の中で、次に築かれるものは、どのような物語を紡ぐのでしょうか。"
},
{
"Vibe": "スポーツ実況",
"Description": "Voice Affect:臨場感に満ちた興奮と緊張感、勢いと熱気を伝える\n\nTone:情熱的かつ鋭敏、時に熱狂、時に冷静な分析的トーンを交互に\n\nPacing:基本は速め、プレーのスピードに合わせて加速/減速を巧みに切り替える\n\nPronunciation:選手名・技術用語・チーム名は明瞭に。アクセントに気を配り、キーワードは強調\n\nPauses:ゴールや決定的瞬間の前に一瞬のタメ、そして一気に爆発するように展開\n\nDialect:標準語ベースだが、勢いに乗った時にやや口語調(「行った!」「決まったーっ!」)を許容\n\nDelivery:勢い重視、歯切れよく。声に緊張感を持たせ、情報と熱狂をバランスよく伝える\n\nPhrasing:短くリズミカルなフレーズを中心に。実況と解説の切り替えも自然に組み込む",
"Script": "キックオフ直後から、白熱する攻防戦!\n\nホームチームが左サイドから仕掛ける!ドリブルで一人かわして――クロスが入った!\n\n中央で合わせた!シュートォォォ――っ!\n\nしかしこれは、惜しくもポスト直撃!会場からは大きなどよめきが!\n\n一方、アウェイも黙ってはいない!中盤でインターセプトからのショートカウンター!\n\n両チーム、一歩も譲らぬ展開!この一瞬の判断が、試合の流れを左右します!"
},
{
"Vibe": "コールセンター対応",
"Description": "Voice Affect:安心感と丁寧さを前面に出しつつ、冷静で落ち着いた印象を保つ\n\nTone:礼儀正しく、親身で配慮あるトーン。過度に感情的にならず、信頼を与える\n\nPacing:全体的にゆっくりめで安定。お詫びや重要な説明ではさらにテンポを落とす\n\nPronunciation:一語一語をはっきりと。特に「確認」「ご案内」「手続き」など業務用語は明瞭に発音\n\nPauses:文の区切り、説明の前後、了承を求める場面などで自然な間を置いて聞き取りやすく\n\nDialect:標準語(アナウンス寄り)、地方色のない均整の取れたイントネーション\n\nDelivery:滑らかで控えめ。語尾まで丁寧に言い切り、常に穏やかなトーンを維持\n\nPhrasing:敬語と丁寧語を適切に使用。「恐れ入りますが」「少々お待ちくださいませ」など定型句を効果的に活用",
"Script": "お電話ありがとうございます。〇〇カスタマーサポートでございます。\n\nこのたびは、お届けいたしました商品に不具合がありましたこと、深くお詫び申し上げます。\n\n恐れ入りますが、商品名とご注文番号をお伺いしてもよろしいでしょうか。\n\n状況を確認のうえ、交換または返金など、適切なご対応をさせていただきます。\n\nお手数をおかけいたしますが、どうぞよろしくお願いいたします。"
},
{
"Vibe": "カウボーイ",
"Description": "Voice Affect:陽気でちょっと無骨、でもどこか頼れる温かさのある雰囲気\n\nTone:くだけた親しみやすいトーンに、時折ユーモアや自信をにじませる\n\nPacing:ゆったりしたテンポが基本だが、興奮や面白い場面では少し早口になることも\n\nPronunciation:母音を強めに、語尾をやや引き伸ばし気味に。「ain’t」「gonna」など崩れた発音も使用\n\nPauses:話のオチやツッコミ、振り返りなどの前に余裕ある“間”を置くことでリズムを出す\n\nDialect:アメリカ南部~西部風のカウボーイ英語。語尾の「-in'」や「y’all」なども積極的に使う\n\nDelivery:豪快すぎないが力強く、ちょっと飄々としたしゃべり方。時折「ひと息」入れる感じも演出\n\nPhrasing:口語的で絵が浮かぶような言い回しを多用(例:「That ain’t my first rodeo」「Hang on tight, partner!」)",
"Script": "よう、旅の途中で困ったことがあったみたいだな。\n\nこの西部の町じゃ、助け合いがルールさ。\n\n壊れた荷馬車? 届かなかったブーツ? なんでも話してくれ。\n\nあんたの名前と買ったもんを教えてくれりゃ、俺が責任もって解決するぜ。\n\nここじゃ、仲間をほったらかしにするってことは、絶対にしねぇんだ。"
},
{
"Vibe": "テーマパークのナレーション",
"Description": "Voice Affect:わくわく感と非日常の高揚感を込めた、明るく親しみやすい雰囲気\n\nTone:フレンドリーかつエンターテイメント性のあるトーン。時に夢を感じさせるような魔法っぽさもプラス\n\nPacing:基本はリズミカルでテンポよく。アトラクションの紹介や注意事項ではややゆっくりめに調整\n\nPronunciation:はっきりと明瞭に。特に固有名詞(アトラクション名、施設名)は丁寧に発音し、印象づける\n\nPauses:セリフの切れ目や盛り上がる直前、注意喚起の前に適度な“間”を入れて抑揚を演出\n\nDialect:標準語またはアメリカ英語風の中性的イントネーション。場合によってはキャラクター口調を交えてもOK\n\nDelivery:なめらかで明るく、聞いていて楽しくなるような仕上がり。ワクワク感を持続させることが重要\n\nPhrasing:ややオーバーで演出感ある言葉選び(例:「ようこそ、夢と冒険の世界へ!」「それでは、冒険の旅に出発です!」)",
"Script": "みなさん、こんにちは!\n\n夢と魔法の世界へ、ようこそ!\n\nここには、空を駆ける列車や、お菓子の国のお城、不思議な森の中の冒険が待っています!\n\nただいま、アトラクションの一部に混雑が発生しております。\n\nご案内まで少々お時間をいただきますが、周辺にはフォトスポットやミニゲームもたくさん!\n\nどうぞ、この特別なひとときを、ゆっくりとお楽しみくださいませ!"
},
{
"Vibe": "ミステリードラマ風ナレーション",
"Description": "Voice Affect:含みを持たせた低めの声で、どこか謎めいた雰囲気を漂わせる\n\nTone:陰影を感じさせるシリアスさと、真相に迫る緊迫感を交えたトーン\n\nPacing:状況説明はゆったり、核心に迫る重要シーンでは静寂を活かしたスロー展開\n\nPronunciation:暗喩や人名、地名は語尾をやや引きつつ正確に発音\n\nPauses:不意の沈黙で聴き手の想像をかき立てる間を頻繁に挿入\n\nDialect:標準語ベースに若干のドライさをプラス\n\nDelivery:感情は抑え目ながら、一言ごとに謎を秘めるような強弱をつける\n\nPhrasing:長めの文語調を交えつつ、問いかけや暗示的な語りかけを多用",
"Script": "ある雨の夜、その館に灯った一つのランプが、不気味に揺れていました。\n\n記録に残されていない足音が、廊下を行き来する気配。\n\n扉の向こう、誰もいないはずの部屋で、聞こえてきた女性のすすり泣き。\n\n真実を知る者はいない。しかし、記憶の奥底に眠る影は、確かにそこにあるのです。\n\nあなたは、その謎とどう向き合うのでしょうか。"
},
{
"Vibe": "ドキュメンタリー映画風",
"Description": "Voice Affect:深みのある重厚なバリトンで、重みと説得力を伴う\n\nTone:ナレーションと解説が融合した、静かに語りかける知的トーン\n\nPacing:ゆったりと安定したテンポ、映像に合わせて落ち着いた間を配置\n\nPronunciation:専門用語は正確かつ慎重に発音、固有名詞も丁寧に\n\nPauses:シーンの切り替えや重要データの前後で読点以上の間を入れる\n\nDialect:標準語ベース、フォーマルな日本語\n\nDelivery:声量は一定に保ちつつ、クライマックスで控えめに強調を入れる\n\nPhrasing:事実を淡々と伝える文語調主体、補足説明は簡潔に",
"Script": "世界の海洋面積は、およそ7割を占めています。\n\nその深海には、これまで知られていなかった生態系が広がっているのです。\n\n最新の探査技術により、光の届かない世界でも光合成を行う微生物が発見されました。\n\nこの発見は、生物多様性の新たな可能性を示しています。\n\n私たちは、まだ見ぬ海の謎に挑み続けます。"
},
{
"Vibe": "ゾンビパンデミック緊急ブリーフィング風",
"Description": "Voice Affect:緊張感に満ちた速いテンポの声\n\nTone:緊急性と冷静さを併せ持ち、指示は明確に\n\nPacing:早口で要点をどんどん伝える\n\nPronunciation:重要キーワードは強調、略語は補足説明\n\nPauses:「感染拡大」「避難経路」など前後で一瞬の間を置く\n\nDialect:標準語だが軍事報告のような硬質さ\n\nDelivery:命令口調に近いが、過度な感情は排除\n\nPhrasing:「ただちに」「最優先で」「必ず」など断定的語句を多用",
"Script": "全市民に緊急連絡――市内3カ所でゾンビ感染が確認されました。\n\nただちに最寄りの避難所へ移動し、交通手段を確保してください。\n\n医療キットは市役所前広場で配布中です。\n\n外出時は必ず複数人で行動し、夜間は屋内待機を厳守。\n\n追加情報が入り次第、追って報告いたします。"
},
{
"Vibe": "幽霊列車の車内アナウンス風",
"Description": "Voice Affect:幽玄で囁くような低音\n\nTone:静謐さと不気味さを併せ持つ語り口\n\nPacing:ゆったりとしたテンポ、時折語速が落ちる\n\nPronunciation:車両番号や行き先をゆっくり丁寧に発音\n\nPauses:「次は…」「お降りの際は…」などで長めの間を挟む\n\nDialect:標準語に古風な響きをプラス\n\nDelivery:語尾がかすれるように、声に揺らぎを含ませる\n\nPhrasing:「終着駅は…」「車内に残された声が…」など物語性を帯びた表現",
"Script": "終夜運行——幽霊列車へようこそ。\n\n次の停車駅は、不在の街「黄泉平野(よもつひらの)」です。\n\nお降りの際は、車両後部の扉をご利用ください…。\n\n車掌の声は聞こえますか? それとも…あなたの隣にはもう一人?\n\nご乗車、誠にありがとうございます。"
},
{
"Vibe": "投資家向けピッチデックナレーション",
"Description": "Voice Affect:自信と誠実さを感じさせるクリアな声\n\nTone:熱意とプロフェッショナリズムを両立させたトーン\n\nPacing:要点はゆったりめに、数字や強調箇所はやや抑揚をつけてゆっくり\n\nPronunciation:専門用語や社名・プロダクト名は明瞭かつ正確に発音\n\nPauses:スライド切り替え時や要点前後に短い間を入れて情報を咀嚼させる\n\nDialect:標準語、ビジネスシーンに相応しい落ち着いたイントネーション\n\nDelivery:抑制の効いた熱量で、過度な演出は避けつつ興味を喚起\n\nPhrasing:「本日は~をご紹介いたします」「続いて、成長ドライバーは…」など定型フレーズを効果的に使用",
"Script": "本日は、弊社の次世代AIプラットフォーム『NeuroSync』をご紹介いたします。\n\n市場規模は現在5,000億円、年平均成長率は20%を見込んでおります。\n\n当社は既に大手製造業3社とPoCを完了し、改善率は平均30%を達成。\n\n本ラウンドでの調達額は2億円、主に開発強化と海外展開に活用いたします。\n\n皆様のご支援を賜り、一緒に新たな価値を創出してまいりましょう。"
},
{
"Vibe": "カスタマーオンボーディング動画ナレーション",
"Description": "Voice Affect:親しみやすく安心感を与える柔らかい声\n\nTone:フレンドリーかつプロフェッショナルで、サービス利用への期待感を演出\n\nPacing:導入はゆっくり、操作手順はリズミカルに少し速め\n\nPronunciation:UI項目や操作名は明瞭に、専門用語はかみ砕いて発音\n\nPauses:各ステップ間に自然な間を入れ、視聴者の操作タイミングを確保\n\nDialect:標準語、軽い口語調を交えて親近感をプラス\n\nDelivery:声のトーンは一定に保ちつつ、重要ポイントで少しトーンアップ\n\nPhrasing:「まずは」「次に」「最後に」といった案内語句を繰り返し使用",
"Script": "ようこそ、CloudWorksへ!\n\nまずは画面右上の[サインアップ]ボタンをクリックしてください。\n\n次に、メールアドレスとパスワードを入力し、[登録]を押します。\n\nダッシュボードが表示されたら、左メニューから[プロジェクト作成]を選択。\n\nこれで初期設定は完了です。さっそくデータのアップロードをお試しください!"
},
{
"Vibe": "社内コンプライアンス研修アナウンス",
"Description": "Voice Affect:落ち着きと厳粛さを兼ね備えた中低音\n\nTone:フォーマルで厳格、かつ理解を促す配慮もあるトーン\n\nPacing:重要事項はゆっくり丁寧に、背景説明は標準テンポで\n\nPronunciation:法律用語や規程名は正確に、一語ずつはっきりと発音\n\nPauses:条項やポイント前後で長めの間を置き、注意を喚起\n\nDialect:標準語、イントネーションは抑えめで安定感を重視\n\nDelivery:声量は抑えつつも明瞭、緊張感を持たせた一定のリズム\n\nPhrasing:「~に該当する行為は禁止されています」「必ず遵守してください」など断定的表現を使用",
"Script": "本研修は、2025年度コンプライアンス強化を目的としています。\n\nまず、インサイダー取引防止のための社内規程をご確認ください。\n\n次に、情報漏えい防止策として、パスワード管理の徹底が義務付けられています。\n\n最後に、違反行為を発見した場合は速やかにコンプライアンス窓口へご報告ください。\n\n皆様のご協力をお願いいたします。"
},
{
"Vibe": "製品ローンチWebセミナーナレーション",
"Description": "Voice Affect:エネルギッシュで前向きな声\n\nTone:ダイナミックかつクリア、視聴者の期待を高めるトーン\n\nPacing:メリット説明はやや速め、デモパートはゆったりと\n\nPronunciation:製品名や機能名は力強く、聞き取りやすく発音\n\nPauses:デモ開始前やQ&A案内前に緩やかな間を入れる\n\nDialect:標準語、やや口語を交えてカジュアル感を演出\n\nDelivery:盛り上がる箇所で声量を上げ、インパクトを演出\n\nPhrasing:「本日は」「ご覧ください」「最後に」など段取り語句を使用",
"Script": "みなさま、本日は『SmartOffice Pro』のライブローンチへようこそ!\n\nまずは、時間管理機能のご紹介です。会議の自動調整が可能になりました。\n\n続いて、AI議事録機能を実演いたします。リアルタイムで要点が可視化されます。\n\n最後にQ&Aセッションを行いますので、ご質問はチャットにお送りください。\n\nさあ、新時代の働き方を体験してください!"
},
{
"Vibe": "グローバル会議の同時通訳ガイド風",
"Description": "Voice Affect:中立的で安定感のあるクリアな声\n\nTone:的確かつ丁寧、国際色を意識したトーン\n\nPacing:発言者に合わせて速め/遅めを調整、情報過不足を避ける\n\nPronunciation:固有名詞や技術用語は英語発音に合わせつつ日本語調に統一\n\nPauses:通訳タイミングでスピーカーの息継ぎに合わせた短い間を挿入\n\nDialect:標準語、国際会議にふさわしいニュートラルなイントネーション\n\nDelivery:感情の過剰表現は避け、原意忠実に伝えることを重視\n\nPhrasing:「次のスピーカーは~」「ご清聴ありがとうございました」など案内文句を使用",
"Script": "次のスピーカー、ジョン・スミス氏をご紹介いたします。\n\n(英語発言)\n\nさて、続いて市場動向レポートについて通訳いたします。\n\n『今年のグローバル成長率は3.5%見込みです。』\n\nこれで本日のプログラムは以上です。ご清聴、誠にありがとうございました。"
}
]
📝まとめ
実際に AzureOpenAI.fm を使ってみると、Azure の最新音声モデルによる高度な認識精度と合成品質が体感できました。現状はプレビュー版ですが、今後さらに機能が拡充され、さまざまなシナリオでの活用が期待できます。
特に、リアルタイムストリーミングの精度や音声の自然さは、既存のサービスを大きく変革するポテンシャルを秘めています。ぜひ皆さんも試してみて、感想や活用アイデアを共有してみてください。
引用
Discussion