Microsoft Cognitive Service - Bing Speech APIを使う方法はいろいろサンプルあり充実しています。
しかし、Translator Speech APIのC#サンプルにはWebSocket使ったサンプルがあるのですが、Bing Speech APIにはサンプルがないという状況になっています。同じようにBing Speech APIにもWebSocketのC#サンプルがほしいです。
WebSocket-JavaScriptSDKを使う方法
[良いところ]
[残念なところ]
SpeechSDK(Microsoft ProjectOxford SpeechRecognition)を使う方法
[良いところ]
[残念なところ]
- Androidはarmeabi用とx86用でarm64-v8a用とかarmeabi-v7a用がない
- SpeechSDK自体のソースが公開されていないため、C#でWebSocket使うときのコードの参考にできない
- .NET StandardやWindows Runtimeには対応していないのでHoloLensから使えない
- Xamarinに対応していないのでBinding Libraryの作成が必要(作成済)
REST APIを使う方法
[良いところ]
[残念なところ]
- 音声発話が完了してから初めてAPIをたたくことができる
- 当然、WebSocketではない
ServiceLibrary(Microsoft.Bing.Speech)を使う方法
[良いところ]
[残念なところ]
- SDKのインターフェースが音声ファイルからのストリーム入力しかない
- .NET用しかない
まとめ
ということで、現時点でC#を使ってWebSocketで動作させようとするとTypeScriptのサンプルコードを読み解きながら、WebSocketのSpeech Protocolドキュメントを読み解かないといけない。
しかしながら、Translator Speech APIに比べるとなんかプロトコル難しくないですか?
さらに、このドキュメントですが、本当にプロトコルのことしか書いていないため、System.Net.WebSocketsクラスを使ってC#でどう書けばいいかという点についての言及がないのです。
また、Connection Protocolでは丁寧にもhttps GETからWebSocketへのUpgradeというWebSocketのお約束レベルの記載まであり、そのあたりを知らないとSystem.Net.WebSocketsクラスでどうするの?といきなり躓いてしまう。
マイクロソフトに期待したいこと: