はつねの日記

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

Microsoft Cognitive Service - Bing Speech API関連まとめ

Microsoft Cognitive Service - Bing Speech APIを使う方法はいろいろサンプルあり充実しています。

しかし、Translator Speech APIC#サンプルにはWebSocket使ったサンプルがあるのですが、Bing Speech APIにはサンプルがないという状況になっています。同じようにBing Speech APIにもWebSocketのC#サンプルがほしいです。

WebSocket-JavaScriptSDKを使う方法

github.com

[良いところ]

  1. Bing Speech APIのWebSocket APIを使っているので、希望の処理ができる

[残念なところ]

  1. Java Script (Type Script)なので、C#の知識だけではコードを理解できない

SpeechSDK(Microsoft ProjectOxford SpeechRecognition)を使う方法

docs.microsoft.com

[良いところ]

  1. .NET / Android / iOSSDKがある
  2. マイクからの入力で音声に認識してくれる
  3. 内部的にWebSocketを使っている感じ

[残念なところ]

  1. Androidはarmeabi用とx86用でarm64-v8a用とかarmeabi-v7a用がない
  2. SpeechSDK自体のソースが公開されていないため、C#でWebSocket使うときのコードの参考にできない
  3. .NET StandardやWindows Runtimeには対応していないのでHoloLensから使えない
  4. Xamarinに対応していないのでBinding Libraryの作成が必要(作成済)

REST APIを使う方法

docs.microsoft.com

[良いところ]

  1. REST APIなので環境や言語依存なくBing Speech APIの使い方サンプルとなる

[残念なところ]

  1. 音声発話が完了してから初めてAPIをたたくことができる
  2. 当然、WebSocketではない

ServiceLibrary(Microsoft.Bing.Speech)を使う方法

github.com

[良いところ]

  1. WebSocketを使ったC#アプリがつくれるSDKを使っている

[残念なところ]

  1. SDKのインターフェースが音声ファイルからのストリーム入力しかない
  2. .NET用しかない

まとめ

ということで、現時点でC#を使ってWebSocketで動作させようとするとTypeScriptのサンプルコードを読み解きながら、WebSocketのSpeech Protocolドキュメントを読み解かないといけない。

https://docs.microsoft.com/en-us/azure/cognitive-services/Speech/api-reference-rest/websocketprotocol

しかしながら、Translator Speech APIに比べるとなんかプロトコル難しくないですか?

さらに、このドキュメントですが、本当にプロトコルのことしか書いていないため、System.Net.WebSocketsクラスを使ってC#でどう書けばいいかという点についての言及がないのです。

また、Connection Protocolでは丁寧にもhttps GETからWebSocketへのUpgradeというWebSocketのお約束レベルの記載まであり、そのあたりを知らないとSystem.Net.WebSocketsクラスでどうするの?といきなり躓いてしまう。

 

マイクロソフトに期待したいこと:

  1. SpeechSDKをオープンソースにしてくれる。しかし、Githubのissue経由でリクエスト(私以外にも何人かが依頼)した結果がプロトコルドキュメントの公開だった
  2. System.Net.WebSocketsクラスを使ったTranslator Speech APIサンプルのようなサンプルの公開
  3. もちろん、プロトコルを整理してTranslator Speech APIくらい簡単にWebSokcetで使えるようにしてくれるのでもいい。

開発者なので

f:id:hatsune_a:20170707235522p:plain

他が「ANAまたは他のスターアライアンス加盟航空会社」ってかいてあるのに、なぜかエコノミークラスのところは「スターアライアンス加盟航空会社」ってなっている。

これヒースローだけなんですよ。

今朝、ANAのプラチナサービスデスクに電話して条件に相違があるの?って聞いたら相違はないと。改善してもらうように言っておきました。

確かにANAスターアライアンス加盟航空会社なんですけれど、他と文章が違うってことは何か違うんじゃないかって考えるわけですわ。開発者って。

なにせ、ヒースローはUNITEDのロビーなので、条件合わないと・・・・ですものね、

 

でも、これ。こういうのって文章をコピペして違うところだけ直しますよね?

なんで抜けちゃったんでしょう。

 

Microsoft MVP Windows Developmentを再受賞しました

今年度から4月更新ではなく、既存MVPは7月一斉更新となりました。

それに伴い、2017年3月末までだった期間も6月末までに延長されていたのですが、本日、再受賞の連絡をいただき、また、ここから1年間、Microsoft MVPとして活動できることになりました。

一昨年から主な活動が自分の自社業務に直結してきたことに伴って、公に発信できる頻度が減ってきておりました。

じゃあ何をやっていたのかといえば、Microsoftと自社(および親会社)のエンゲージメント、そして、グループ全体の開発者さんにイントレプレナー的な活動を実践として見せ、発言として聞いてもらって、少しでも、開発者の意識を広げられるような風通しができるように活動してきました。

とはいえ、2008年に初受賞し、10回目となる今年は、2017年3月に日本でもHoloLensが発売開始され、ホロラボという会社の設立にもかかわることができるなど、自社業務は業務としてこれまで以上に活動の場を広げるとともに、Windows Mixed Realityについては自社の枠をこけて、色々活動を広げていき、また、どんどん情報発信していきたいと思っています。

また、よろしくです。

HoloToolkit-Unityが5.6.1f1対応になりました。

HoloLensでのMIxed Realityアプリ作成に不可欠なUnity。そのUnityでMixed Realityアプリを作成するときに便利な機能を提供してくれるのがHoloToolkitです。

最新のUnityは5.6.1となります。そして、HoloToolkitが5.6.1f1対応になりました。

github.com

アセット自体は

https://github.com/Microsoft/HoloToolkit-Unity/releases/download/v1.5.7.0/HoloToolkit-Unity-v1.5.7.0.unitypackage

こちらの方からダウンロードできます。Unityで使うならアセットの方が使いやすいかな。

Unity自体はこちらから。

store.unity.com

 

 

 

build 2017雑感

build 2017も残すところあと1日となりました。

1日目、2日目のキーノートとセッションに参加して感じたことは、AI - Cognitive、HoloLens、Xamarinということでしょう。

そしてすべてのセッションには英語字幕がついている(これ、音声認識なのか、どこかに会場音声を飛ばしてキー入力している人がいるのか不明。後者なのかな)点も見逃せませんでした。

今回の会場は道路を挟んで2つの建物で行われていました。キーノートや展示会場もあるWCC側のセッションでは手話通訳者の人がスピーカーの話す内容を手話にしていました。もちろん、キーノートでも。

AI - Cognitive

 画像認識を使って危険予知や体調を推測するなど、Cognitive Serviceで提供されている機能を使うことで、人の気配りを機械にさせることができるようになるかもしれません。

疲れることも気分にも左右されない機械がいろいろなところに入ってきて、それによって生まれた余裕を使って臨機応変の部分で人が対応できるような未来が感じられるのが今年のbuildの特徴の1つでしょう。

そしてもう一つの未来がキーノートで紹介されたマイクロソフトリサーチの研究

youtu.be

パーキンソン病の症状の1つである手の震えを二軸のモーターで相殺する腕時計デバイスです。動画中にもあるような小型化できたのも、機械学習による成果と言えるでしょう。

HoloLens - Microsoft Mixed Reality

今までは文字通り箱入り娘のようだったHoloLensですが、今回のbuildの展示会場では、普通のブースにもHoloLensを展示している企業さんがいて、HTCやOculusのように気軽にかぶせて自分たちのアプリを体験させていました。

そして、Microsoft Mixed Realityに準拠したAcerHMDの体験コーナーもありました。AcerHMDですが、HoloLensのように単体動作ではなく、PCに接続して使う従来型のHMDです。ですからHoloLens向けに作成したアプリをローカルコンピュータで実行すればAcerHMDに表示されるという寸法です。

Mixed Reality AcademyでもHoloLensとAcerの両方が試せました。同じアプリが両方で試せるのは素晴らしいですね。Acer HMDですが今までにない綺麗さでした。いわゆるフルダイブ型ですが装着感もいいし、これでVRコンテンツをプレイしたら楽しいかなと思いました。

Xamarin

そして今年もXamarin界隈は元気ですね。セッションもたくさんあるし。

Visual Studio for MacがGA(正式提供)されたり、Xamarin Live PlayerやXAML Standardなどのいままでかゆかったところに手が届くような発表もあり、今後もXamarin界隈は元気な感じですね。

■Xamarin Live Player

AndoridやiOSでの実行(画面表示?)をシミュレートしてくれるインタープリター環境です。VMのように重たくもないし、実機デプロイと違って、Visual Studio側での変更もリアルタイムに反映ができます。

もちろん、シミュレーターや実機のように厳密には動作が違う部分もあるかもしれませんし、(実はインタープリターなのでMacなくてもPCだけで)iOS画面が確認できるといっても、まだまだ基本的なXAMLページしか対応できていないし、実機デプロイやストアへの登録はMacが必須なのは変わりませんが、この方向が示されただけでも、また、初学者の人が入門記事を試すのにも最適化なんじゃないかな。

XAML Standard

現状、Microsoft XAMLとXamarin XAMLは同じように書けそうで、コントロール名が違っていたり、プロパティが違っていたりします。そこで、XAML Standardという考え方を入れて共通化していきましょうというものです。

私としては、コントロール名やプロパティ名を共通化するときに、全部、Microsoft XAMLによせるのではなくて、例えば、VisibleプロパティなんかはIsVisibleプロパティのようにXamarin XAMLにしてもらった方がConverter書かなくていいのになーと思ったりするので考慮してほしいなぁーと思ったりもしています。

それ以上に期待するのが、各プラットフォームごとに動きの差異が最小になるようにしてほしいという点です。それができるならば、コントロール名やプロパティ名が違うくらい外側の話ですから使う側でいくらでも補完できます。

若干、今回のXAML Standardの発表を否定的にとらえているようなコメントもTwitter上で見かけますが、build現地の空気感や使う側の開発者にしてみれば、XamarinがMSに買収されたときから【長い間】「こうなるはずだよね?」と思っていたことが【やっと公式に表明】されたという点が大きいわけで、個人的にはそれこそ去年のbuildで表明されてもよかったくらいだと思うので、それは素直に評価して喜んでいいじゃないかって思うところです。

ゴースト・イン・ザ・シェル

ということで公開初日だったのでみてきました。

 

http://www.ghostshell.jp/

 

士郎正宗的な光学迷彩って、そうそうこんな感じ!このノイズが入る感じが素敵!

街は明るいブレードランナー市街地って感じで、これもGood!

で、少佐ってもう少し少女っぽいイメージだったんだけれど体形が…ってのは置いておいて。

バドーいいね!バドー。

あと電脳ダイブする瞬間の映像もいい感じ。

何よりももうMR!MR!MR!な世の中素敵ですよ。

実家にあるブラックマジック初版本とかアップルシード初版本とかまだ保存されているかなー。

 

さて、初音は、高校進学したときに同じ中学出身が過去にも将来もいないような高校に行ったので(実家暮らしだったけど)そこで人間関係リセットしちゃったし、大学も高校の人間関係あまり引きずらなかった(とはいえ、仲が良かった同級や先輩とは今も年賀状やりとりしている)。そういえば仕事で入札にいったらN社の担当者が高校の同級生だったことはあったわ。

そんな感じなので同窓会とか小学校、中学校、高校、大学も一回も行ってない(いや、そもそも開催されているのか?)わけで、そうなってくると色々昔の記憶が霧に包まれている感じになって、実家に帰って散歩しても都内なのにシャッター商店街があるくらいさびれているところだし再開発も進んでいるので、あれれ?って感じだったりと、「私の過去はなんだろう」的な不安感にリアルに陥ったりできるわけです。

今は、きっとネットがあるのでそういったことも少ないでけれどね。

だから、この作品のとあることがすごくよくわかるというか、見終わった後のエンドロールみているときに妙な不安感に襲われちゃいましたね。

まあ、そんなことで、私の魂はシェルの中にあるかなーということで。

 

そうそう。荒巻課長もよかったですよ!