はつねの日記

Kinect, Windows 10 UWP, Windows Azure, IoT, 電子工作

未来のテクノロジーリーダーへ!Imagine Cupに挑戦しよう!

はじめに

こんにちは! Microsoft の Imagen Cup をご存じですか?
もし、高校時代までにアプリコンテストに参加した経験があれば、18歳以上の学生を対象にした世界的なイベントで、テクノロジーを通じて新しいソリューションを創造し、仲間たちと共に競い合う貴重な機会となるでしょう。

imaginecup.microsoft.com

だれにピッタリか?

つまり、「おもしろいアイデアはあるけれど、どう実現すればいいの?」と思っているあなたにこそ、ぴったりの場なのです。

Imagine Cupでは、以下のようなサポートがあります:

  1. メンターによる指導: 専門家からのフィードバックを受けながら、技術を磨くことができます。
  2. ネットワーキングの機会: 世界中の仲間と繋がり、自分の視野を広げることができます。
  3. 豪華な賞品: 優勝者は、夢のような体験や、次のステップに進むための資金を獲得できるチャンスがあります。

ぜひ、この機会を逃さず、あなたのアイデアを形にしてみましょう!あなたの情熱と創造力が、未来を切り拓く力になります。ご興味があれば、公式ウェブサイトで詳細をチェックしてみてください。🚀

スケジュール

少し興味が出てきましたでしょうか。
Imagine Cupのスタートは9月なので、2026年のスケジュールから今年のスケジュールを予測してみましょう。

1. MVP提出期限(予想:9末~翌年1月初旬)

2026のときは、2025/09/30~2026/01/09。
この期間にプロトタイプを提出する必要があります。

2. 準決勝(予想:翌年2月)

2026のときは、2026/02/18に準決勝進出者発表、2026/04/08にファイナリスト発表。

3. 世界大会(予想:翌年春~初夏)

→ 優勝者発表
→ Satya Nadella とのメンタリング
→ 賞金 15万ドル

どんなチームが2026年のファイナリストだったか?

プロダクトは AI、医療、IoT、食品サプライチェーンなど、「社会課題 × 技術」で具体的に解決しようとしているチーム。
どれも「そのまま起業できるレベル」のプロダクト。

どんなスキルが評価されるか?

API連携、Azure AI、認証、データ処理、プロトタイプ構築
高校生のうちに NASA Space Apps や国内コンテストで経験を積めば、18歳になったときに Imagine Cup で戦えるレベルに確実に到達します。

Imagine Cup 2027 のエントリはいつから?

エントリ=MVP提出となります。米国の新学期9月に合わせて考えると今年も9月下旬に開始されると予想します。

最後に

今から準備して、ちょうどよいタイミングですね。
もちろん、今年の前半にコンテストに参加したアプリを更にブラッシュアップして挑戦というのも経験を生かすということからすると良いアプローチですね。

Microsoft MVP 受賞報告

2025-2026 Microsoft MVP for Microsoft Foundryを受賞しました。
今回で「20 years in the program」の節目更新となります。
自身の興味範囲が変わっていくこともあり、カテゴリは色々渡り歩いておりますが、いま、一番興味のあるAIカテゴリでの受賞は非常にうれしく思います。
今後も、少しでも皆さんの一助になるようなアウトプットをしていきますので、よろしくお願いいたします。

リアルタイム音声認識を Voice Live API で実現する方法を下調べしてみる

前回:hatsune.hatenablog.jp

はじめに

前回の投稿を書いているときに、Voice Live APIを使って、「You can add Azure Speech in Foundry Tools capabilities such as noise suppression, echo cancellation, and advanced end-of-turn detection」が可能という learn の情報を見つけました。
learn.microsoft.com

もちろん、今までも Azure Speech Service を WebSocket を使って呼び出すことはできましたが、「いままで」と「これから」は主流となる SDK が変わるのかを調べてみましょう。

(いままで) Speech SDK を使う

Azure Speech Service を WebSocket で呼び出す場合、Coginitive.Service.Speech SDK (Speech SDK) から呼び出します。

endpoint = $"wss://{this.Location}..stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language={this.Language}";
subscription_key = ""
config = speechsdk.SpeechConfig(endpoint=endpoint, subscription=subscription_key)

いままでの留意点

Windows 版の Speech SDK は内部的に 「Microsoft.CognitiveServices.Speech.core.dll」という C++ ネイティブライブラリ (DLL) を使っているため、開発環境や実行環境に Visual C++ Redistributable (VC++ ランタイム) がインストールされていないとロードに失敗することがあります。
VC++ ランタイムは、OS標準添付ではないにしても、大抵の Windows 環境では、他のアプリを入れた時に導入されているため、あまり気に必要はないかも知れませんが、インストーラーで VC++ ランタイムがあるかを確認し、なければダウンロードしてインストールするというステップを(場合によってはインストール媒体にランタイムのインストーラーも入れて)設定することは個人的には避けたいのです。

いままでの ClientWebSocket での実現方法

Speech SDK の中から呼び出しているエンドポイントは次のようになります。

wss://japaneast..stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=ja-JP

このエンドポイントは、あくまでも Speech SDK からの呼び出しであり、この後のプロトコル(データのやり取り)が複雑という難点があります。
具体的に Speech SDK の内部で実施している次のようなことも自前実装が必要です。

  • api-key ヘッダー
  • X-RequestId
  • Path: speech.config
  • 最初の speech.config JSON
  • PCM16 のストリーミング
  • speech.hypothesis / speech.phrase / turn.start などのイベント処理
  • ping/pong
  • 接続維持

もちろんこのあたりをキチンと実装してしまえば、Speech SDK よりも柔軟な連携が可能となります。

(これから) Voice Live API

Voice Live API は、Windows 環境でも例えば WPF アプリならば「System.Net.WebSockets.ClientWebSocket」を使って WebSocket 通信を実現しているため、 VC++ ランタイム不要でリアルタイム音声認識が可能です。
gist.github.com

「いままで」から「これから」に移行するときの留意点

いままでを「Azure Speech Service API」、これからを「Voice Live API」として比較してみます。

項目 Azure Speech Service API Voice Live API
--- --- ---
エンドポイント ``/stt/speech/recognition/...`` ``/voice/live/ws``
認証 ``api-key`` ``api-key``
モデル Azure Speech STT gpt-realtime-mini / MAI-Transcribe-1 など
LLM なし **内蔵**

大きな違いはモデルの違いから生じる LLM の有無でしょう。
もし、 LLM がいらず音声認識だけが必要な場合では、「いままで」の方式の方が理にかなっています。
この場合、自前実装よりも素直に Speech SDK を使うことも視野に入れておくとよいでしょう。

まとめ

「いままで」と「これから」に加えて Foundry API についても追記して比較してみます。

項目 Azure Speech Service API Voice Live API Foundry API
--- --- --- ---
WebSocket ❌ (RESTのみ)
音声認識(ASR) ✔ (ASR専用) ✔ (Realtime ASR) ✔ (MAI-Transcribe-1)
LLM ✔ (必ず LLM が入る)
用途 音声認識だけしたい場合の正解 会話AI・音声対話 バッチ処理・非リアルタイム

何を使うべきか、用途から逆引きするのがよさそうです。
一方で、Voice Live API で LLM を指定しない場合は、「いままでの」Azure Speech を呼びだしてくれるとアプリ作成側としては非常に助かるのではないかと思いました。

生成AI時代だからこそのAzure AI Services活用術(その5)~Azure Speech の MAI を試してみよう~

はじめに

前回は、 Microsoft Foundry (旧名称 : Azure AI Foundry) を使った Azure AI Vision について紹介しました。
今回は、 Microsoft Foundry で2026/04から利用可能になった「MAI-Transcribe-1」について紹介していきます。
learn.microsoft.com

MAI-Transcribe-1 とは

2026/04に Microsoft は非 Open AI の LLM モデルである 3 つの MAI (Microsoft AI) モデルを発表し、 Microsoft Foundry からの利用が可能になりました。

  • 音声認識:MAI-Transcribe-1
  • 音声合成:MAI-Voice-1
  • 画像生成:MAI-Image-2

microsoft.ai
今回紹介する Speech Service に新しく加わった LLM Speech (MAI-Transcribe-1) は、音声認識 WER (Word Error Rate) 誤り率も3.9% ということで、100 単語を認識して 3 ~ 4 単語の誤りという低さを実現しています。

参考までに人間による文字起こし精度は 4% 前途なので、ほぼ人と同程度の精度を実現できているといえるでしょう。

Microsoft Foundry で試行する

それでは、 早速、 Microsoft Foundry を使ってノーコードで試してみましょう。
ai.azure.com
なお、2026/05/17現在、LLM Speechが使えるリージョンは、「eastus」「northeurope」「centralindia」「southeastasia」「westus」のみに限定されているので、Microsoft Foundry のプロジェクトも該当のリージョンで作成してください。
Microsoft Foundry にサインインしたら、トップメニューの [ビルド] を選択します。

モデル選択

サービス選択

サイドメニューで [モデル] を選択して、一覧の中から「Azure Speech - 音声テキスト変換」を選択します。

モード選択

ドロップダウン リストで「LLM 音声」を選択します。

今回は言語として「自動検出」を選択して、音声から言語を自動検出して文字起こしができる設定で試行してみます。

試行

事前録音したファイルをアップロードすることも出来ますが、[レコーディングを開始] をクリックしてその場で録音して試行することも可能です。

このとき、試行した内容の curl での実行コードを「コード」タブで確認することができます。同様に「JSON」タブで API からのレスポンスも確認できますので、Microsoft Foundry で試行したあとに、実際にアプリケーションに実装する入口としても便利です。

リアルタイム音声認識対応について

Microsoft Foundryで現在未対応

現在、プレビュー版の LLM Speech には、Microsoft Foundry でのリアルタイム音声認識は提供されていません(2026/05/17時点)。
また、リアルタイム音声認識で便利な下記のような機能も未提供となっています。

特に [語句一覧] がサポートされると同音異義語が多い日本語において、シーンごとに同音異義語から適切な語句を選択しやすくなりますので、今後のサポートに期待ですね。

Voice Live で MAI-Transcribe-1 を指定しても現在未対応

MAI-Transcribe-1 自体や Microsoft Foundry のプレイグラウンド (試行) では、音声ファイルからの音声認識のみとなっています。
そのため、リアルタイムで音声認識する方法は提供されていません。
ドキュメントをみると「VOICE Live で MAI-Transcribe-1 を使用する」で使用するという記載があります。
しかし、「MAI-Transcribe-1」にはRESTのインターフェースしかないため、 Voice Live で使用できるプロトコルも REST のみとなります。
× WebSocket → MAI-Transcribe-1
× WebRTC → MAI-Transcribe-1
× gRPC → MAI-Transcribe-1
○ REST → MAI-Transcribe-1(唯一の方法)

MAI-Transcribe-1 はプレイグランドでの提供のみ (2026/05現在)

また、 現在、MAI-Transcribe-1 はプレビュー版のため、 Microsoft Foundry のプレイグラウンドでのみの提供となっているので、そもそもとして Voice Live で指定することもできないようです。

Voice Live でのリアルタイム音声認識を実現するには

Voice Live API の WebSocket で使える音声認識モデルは Speech Service 系のみ。
MAI 系(Foundry)は WebSocket 非対応。

おわりに

今回は「Azure AI Speech」の新しいモデルである「MAI Transcribe」を紹介しました。
残念ながら AI と音声で会話するような用途で使えるリアルタイム音声認識はまだ非対応でしたが、音声ファイルからの文字起こしであれば、非常に良好な認識率(低いWER)が実現できます。
大量に録音ファイルがある、取材テープ(テープというよりも音声ファイル)からの文字起こしをするようなときは、積極的に使ってみるとよいでしょう。

Technovation Girls 日本リージョンの対面フィードバックに参加してきました。

私がテクニカルメンターリーダーとして関わらせていただいているTechnovaion Girls 日本リージョンの参加者向け対面フィードバック大阪に参加してきました。
technovationchallenge.org
www.technovation.waffle-waffle.org

当日は関西圏や中京圏、そして西日本エリアの参加者が集まり、実際に作成したアプリやビジネスプランなどを説明していただきました。
プレゼン資料など、毎回驚くほどよくできていて、そのベースがあるからこそ、アプリが実現すべき価値というものも明確になっているという印象でした。
Technovation Girlsの良いところは、単にビジネスアイデアのコンテストではなく、実際に作成したアプリに対する評価軸がしっかりしているところです。
そして、Azure Open AIをはじめとした生成AIをいかに活用しているか、資料作成だけではなく、アプリに生成AIをどう取り入れているかも評価される点です。

もしかしたら、日本の一般企業よりも更に深く生成AIを使いのこなしている10代の学生さんたちの柔軟で前向きな取り組みを技術面で応援することは、私のライフワークと言えるかもしれません。
与えるというよりも与えて貰えているというこの感覚を持続するためにも、自分の技術力をきちんと継続的に向上させていかないといけないと改めて感じました。
日本から1つでも多くのチームが米国で開催される本選のステージに立てるよう、指示や手伝いではなく学生さんの自主的な成長を支える栄養剤として少しでも貢献できればと改めて決心した次第です。

2026年3月24日にMicrosoft AI Tour Tokyoが開催されます

aitour.microsoft.com
2026年3月24日に東京ビックサイトにて「Microsoft AI Tour Tokyo」が開催されます。
私も Microsoft MVP として Connection Hub のサポートをボランティア予定です。
AIに関すること、ぜひ、会場でお話ししましょう!

生成AI時代だからこそのAzure AI Services活用術(その4)~Azure AI Visionを試してみよう~

はじめに

前回は、 Microsoft Foundry (旧名称 : Azure AI Foundry) を使った Azure AI Speech について紹介しました。
Whisper など生成AIでの音声認識も精度があがってきましたが、ハルシネーションなどを考えると「音声が聞こえない」「(知らない言語なので)音声を聞いても判別できない」場合などは、まだまだ、音声特化AIである「Azure AI Speech」の方が便利であると考えます。
だからこそ、Microsoft Foundry の中でも独立したモデルとサービスエンドポイントとして Speech があるのかもしれません。

今回は、Microsoft Foundry の個別エンドポイントの2つ目である「Azure AI Vision」について紹介したいと思います。

Azure AI Vision とは

Azure AI Vision も Microsoft Foundry で独立したモデルとサービスエンドポイントをもった AI です。

2026年3月時点で、Azure AI Vision ができることとしては次のようなものがあります。

  1. 画像からテキストを抽出する
  2. 写真の検索
  3. 画像のキャプション付け
  4. 画像内のオブジェクトを選別
  5. 画像のタグ付け
  6. 画像内の顔を検出

このできることリストを見ると「画像をAIに理解させて何かをしたい」ときに必要が一通り揃っていることが分かりますね。

移行が必要な機能と残る機能

AI を理解するうえで重要なことは、斜め読みでもよいので公式ドキュメントを一読することです。
公式ドキュメントには、どのような機能があるか、また、更新情報などの重要な情報が詰まっているからです。
Azure AI Vision の公式ドキュメントをみてみましょう。
learn.microsoft.com

すると、注意事項としていくつかの機能は移行が必要だと記載がありました。

機能 目的 移行先
Image Analysis 4.0 画像分析 ChatGPTの画像分析
Image Analysis 4.0 OCR Azure Document intelligence
Azure Face Service 顔検出 移行不要:Azure Face Service

登場当時に「Face API」と呼ばれていた「Azure Face Service」は残るようですが、それ以外は、2028 年 9 月 25 日までに別サービスに移行が必要とのことです。

Azure Face Service とは

learn.microsoft.com
Azure Face Serviceは、画像内の人の顔を検出、認識、分析する AI アルゴリズムを提供します。 顔認識ソフトウェアは、本人識別、タッチレス アクセス制御、プライバシーのための自動顔ぼかしなど、さまざまなシナリオで重要となります。
Azure Face Serviceには大きく3つの機能があります。

  1. 顔検出:画像の中から顔を検出する機能
  2. 顔認識:画像の中の顔が「だれ」かを識別する機能
  3. 顔認証:Windows Hello のように本人認証を行う機能

Face リソースを作成

Face を使うためには、Face という種類のリソースを作成する必要があります。
Cognitive Services の汎用リソースや Computer Vision リソースでも動作させることができません。
Face のリソースは https://portal.azure.com/#create/Microsoft.CognitiveServicesFace で作成できます。
今回は、リソースの内容としては次のように指定します。

作成が完了すると、Azure Portal のリソース一覧に次の行が追加されます。

顔検出

顔検証と顔認識は登録が必要ですが、顔検出操作は登録なしで使用できます。
nuget から Azure.AI.Vison.Face を取得して SDK 経由で利用することも出来ますが、REST APIも用意されています。
使い方をよく理解するため、そして、 SDK に対応していない環境から使うための情報を得たいので、 REST API での使い方を調べてみましょう。
learn.microsoft.com

プレイグラウンドで REST API を試す

Foundry のリソースでは Azure Face Service が使えないことと関連があるかもしれませんが、残念ながら Microsoft Foundry に Azure Face Service のプレイグラウンドは実装されていません。
しかし、Face の公式ドキュメントにはプレイグラウンドが用意されています。

[使ってみる] をクリックすればプレイグラウンドが右側に表示されます。
https://learn.microsoft.com/ja-jp/rest/api/face/face-detection-operations/detect?view=rest-face-v1.2&tabs=HTTP#code-try-0

パラメタを指定

1つ重要なポイントとしては「returnFaceId=false」を URL パラメタとして指定することです。
指定の仕方は「パラメーター」の一覧で、「returnFaceId=false」を入力してから「+」をクリックします。

この追加をしておかないと、内部的に顔認識や顔認証が動作するため、申請が必要な機能制限に該当してしまうからです。
顔の位置などを取得する顔検出のみであれば、このパラメタを指定することで申請を回避できます。

ヘッダーを指定

「Ocp-Apim-Subscription-Key」ヘッダーを追加して、Face リソースに割り当てられたキー (1でも2でもOK) の値を指定します。


本文を指定

今回は、Face SDKのサンプルコードで指定している画像URLを指定するので、本文の指定は次のようになります。

{
"url": "https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/Face/images/detection2.jpg"
}

実行結果

[ファイル名を指定して実行] をクリックすればプレイグランド内で REST API を呼びだして次のような結果が表示されます。

これは画像の中で検出した顔の位置となります。この範囲で四角を描画すればよいということです。

顔認識

顔認識には様々な用途があります。その用途は大きく3つに分類でき、それぞれにエンドポイントが用意されています。
なお、顔認識を行うためには事前申請が必要となります。

findsimilars

findsimilars エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/findsimilars」

*機能 *用途
Find Similar クエリ顔の faceId を指定して、faceId 配列から類似した顔を検索します。 faceId 配列には、Detect によって作成された顔が含まれています。
Find Similar From Face List 顔リストから類似した顔を検索するクエリ顔の faceId を指定します。 'faceListId' は、顔リストの作成によって作成されます。
Find Similar From Large Face List クエリ顔の faceId を指定して、大きな顔リストから類似した顔を検索します。 "largeFaceListId" は、大きな顔リストを作成することによって作成されます。
group

group エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/group」

*機能 *用途
Group 顔の類似性に基づいて候補の顔をグループに分割します。
identify

identify エンドポイントのドキュメントとプレイグラウンドの一覧は次のようになります。
「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/identify」

*機能 *用途
Identify From Dynamic Person Group 動的人物グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の識別。
Identify From Large Person Group 大規模人物グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の ID。
Identify From Person Directory person ディレクトリ personIds 配列から特定のクエリ担当者の顔の最も近い一致を見つけるための 1 対多の ID。
Identify From Person Group ユーザー グループから特定のクエリユーザーの顔の最も近い一致を見つけるための 1 対多の ID。

顔認証

顔認証にも様々な用途があり、その用途ごとにドキュメントとプレイグラウンドが用意されています。
どの用途もエンドポイントとしては「POST https://{faceリソース名}.cognitiveservices.azure.com//face/v12/verify」という形式で、URLパラメタの指定により用途ごとの動作が提供されます。
なお、顔認証を行うためには事前申請が必要となります。

*機能 *用途
Verify Face To Face 2 つの顔が同じ人物に属しているかどうかを確認します。
Verify From Large Person Group 顔が大規模人物グループの人物に属しているかどうかを確認します。
Verify From Person Directory 顔が Person Directory の人物に属しているかどうかを確認します。
Verify From Person Group 顔が人物グループの人物に属しているかどうかを確認します。

移行をする前に「画像分析」についてのまとめ

Image Analysis 4.0 Service を使うことで、画像からさまざまな視覚的特徴を抽出できます。 たとえば、成人向けコンテンツが画像に含まれているかどうかを判断したり、特定のブランドや物体、人の顔を検出したりすることができます。
残念ながらプレイグラウンドは用意されていませんが、公式ドキュメントには REST API での使い方も掲載されています。
learn.microsoft.com
2028 年 9 月 25 日に廃止されるので、それまでにGPTなどの生成AIへの移行が推奨されています。

移行をする前に「OCR」についてのまとめ

OCRは、テキスト認識またはテキスト抽出とも呼ばれます。 通常、テキストは単語、テキスト行、段落またはテキスト ブロックとして抽出され、スキャンされた画像からテキストにアクセスできます。 この機能により、手動でのデータ入力の必要性が排除または大幅に削減されます。
すでにOCRの機能は画像OCRについては「画像分析」側に集約され、また、「画像分析」自体も2028 年 9 月 25 日に廃止が決まっています。
learn.microsoft.com
請求書などのドキュメントからのテキスト抽出には、 Azure Document Intelligence の利用が推奨されています。
learn.microsoft.com

おわりに

今回は「Azure AI Speech」に続いて「Azure AI Vision」を紹介しました。
生成AIが得意なところは生成AIに移行が予定されています。
継続する Azure Face Service についても生成AIでも実現できるかもしれませんが、特化AIである「Azure AI Vision - Azure Face Service」を使うことで、顔認識や顔認証のようなセンシティブな情報(機微情報)に対して、より確実な回答が得られるようにしていることを感じてもらえたらうれしいです。