前回からの続きで、留意事項について説明します。
5. おわりに
1. コントロールパネル-サウンド-録音で、マイクを選択し、そのプロパティのレベルで、マイクを80、マイクブーストを+20.0dbに設定して録音すると、適切に音声認識されます。私のWindows7環境/Thinkpad x230では、録音作業を実施するとマイクの設定が変更されるようなので、その都度確認が必要です。
もし、このソースで録音したデータで下記の画面({"results": [],"result_index": 0}})が出力され、かつ、STTのサンプルアプリケーションとしてGithubで公開されているspeech-to-text-nodejsのspeech-to-text-nodejs/public/audio/に含まれる音声データ(例 sample-Ja_JP-wide1.wav)の場合は正常動作する場合、マイクの設定を確認してください。なお、Sound engine freeなどでビットレートを変更することで認識するようになることがありますが、本質的には、マイクの設定です。
2. 元々は、Localのhtml/javascript(と、curlによるSTTへのpostをajaxで代替)で録音、音声認識を実現する予定でした。しかし、CORSの制限をうまく回避するアイデアがなかったので、今回のようなnode.jsによる実装になりました。また、node.jsにおいても、response headerを記述することで回避できるといった趣旨の情報があり、Expressのapp.jsに記述してみたのですが、効果なし。結局、2つのnode.jsサーバーで分担処理する実装になりました。STTをBluemix上のnode.jsにバインドすることで回避できるのでは?、とか、node.jsをひとつに統合できるのでは?、とか思いますが、時間切れです。
3. 作業中にFirefoxがバージョンアップされまして、いくつかの関数について、F12キーのコンソールでは警告がでます。これまた、時間切れです。
4. Windows環境では、最初に述べたことに加えて、npmでwatson-developer-cloudをインストールすると、VCBuild.exeがないのでBuildできないとか、cf pushであったほうが便利な.cfignoreファイルが作成できない(DOS窓でRENAMEすれば作成できるけど、動作しない)とか、いろいろありました。VCBuild.exeを解決するには各バージョンのVisual studio(2010~、導入イメージは6GBくらい?)を解決するまで順番に導入だし、.cfignoreが動作しない状況でnode_modulesにwatson-developer-cloudが含まれているとcf pushで毎回、数分要してしまったり、ですので、非Windows環境がよろしいと思います。ちなみに、watson-developer-cloudの導入はエラー終了状態で、VCBuild.exe問題は放置しましたが、STTについてはlocalのnode.jsで適切に動作しています。
最後に、偉大な先達の皆様に、感謝します。また、javascriptやSTTのアプリに興味のある方々に役立ちましたら幸いです。