きな粉もち.net

.NET関連仕事に携わっています。OSSのソースを読んで気がついたことを中心に呟いたりブログに投稿したりしています。最近はUiPathを使ったRPAも研究中。気軽にフォローやツッコミよろしくおねがいします! Gitはここを使っています https://github.com/kinakomotitti

Cognitive Service× Speech Service×タイムアウト問題対応まとめ

この記事の目的

この記事では、
Cognitive Serviceの音声認識サービスの認識時間制限問題の対応をまとめること
を目的としています。


本題

★実行環境

【OS】Windows 10
【実行環境】Edge
【プラットフォーム】javascript
SDKmicrosoft-cognitiveservices-speech-sdk(v.1.1.0)


★問題の現象

github.com
【SpeechRecognizer】クラスの
【startContinuousRecognitionAsync】メソッドを使い、
音声認識を実行していました。

話始めてから、話し続けている間は、問題なく動作します。

しかし

一定時間何も話さずに放置しておくと、音声認識が終了します。

議事録アプリやプレゼンの文字おこしアプリに使おうと思っていたので、
ある程度の話声のない時間でも、音声認識を維持する必要がありました。


参考)



★対応

調べた範囲では、再開処理用のメソッドやイベントがなく、
音声認識のステータスが終了したことを通知するイベントも見当たらない…

と思ったとき、

ふとリリースノートを見てみると、音声の継続的な認識に関する修正がいろいろあることがわかりました!
docs.microsoft.com


ということは、SDKのバージョンを上げれば何とかなるのか…
という淡い期待のもと、2019年4月にリリースされたばかりの最新バージョン

【Version 1.4.1】

にアップデートして動作確認をしたところ、
音声が長時間途切れたとき(話声のない時間が長く続いたとき)でも
音声認識が継続して維持されることが確認できました。



まとめ

SDKをアップデートしたら治った!
・↑なんで治ったかは、未確認…