【C#】BNO055のPitchRoll値を音声読み上げするプログラム作った<姿勢角理解に便利>

まずは動画をご覧ください.音声なので、動画で見る以外にないです。

●VOICE Synthesisの使い方備忘録

①System Speechは、VisualStudio2019でないとインストールできません。
インストールは、NUGET管理ウィンドウから、System Speechと検索して、一番上にでてくるので
それをプロジェクトへインストールします。

②Windows Formアプリです。
 using System.Speech;
 using System.Speech.Synthesis;
  で後は、
  //Speech 生成
 SpeechSynthesizer synth = new SpeechSynthesizer(); 
  synth.Speak(“ピッチ” + pitch.ToString() + “ど”);  //この行で読み上げ実行します。

コードは、GISTにおいてあります。
https://gist.github.com/dj1711572002/45308691b3bf304f25c39d2f9a238978

文字を音声変換するText To Speechについてはこちらの記事が最初です。

③機能
TextBox1に日本語を入力してボタン3を押すと文字を読み上げてくれます。
IMUの出力を2データ 整数,整数 CRELF でUSBシリアルもしくはBlueTooth SPPでPCへ送ります。
マイコン側からの送信周期は2-3秒に一回がいいです。
コンボボックスでCOMポート番号を選んで、接続ボタンを押すと、受信データをRichTextBox1に表示しながら
音声読み上げします。読み上げ時間間隔は4秒とゆっくりですので、IMUもゆっくりと4秒に一回姿勢を変えます。

●苦労した点
①話している時間が長いので、データをその間データを送り付けるとバッファにデータがたまってしまって
センサの動作とリアルタイム同期しなくなるので、マイコン側の周期も3秒、PC側は4秒周期まで落としてます。

②話す速度は、synth.Rate = 4;//話す速度 Max 10で設定できますが、-10から10まで設定できますが。
まともに聞き取れる範囲は、3~8までの範囲で、本プログラムはrate 4とゆっくり発言させてます。

③IMUの動作をとらえて、そのタイミングで発声させるトライをしたのですが、どうやっても話す時間が3-4秒かかるので、マイコン側の入力周期をゆっくりする以外になかったです。

●以後
本プログラムの目的はスキー滑走中に状態を知らせる役目なので、スキー滑走のどのタイミングで
どういうデータを話すかは、STA24を開発しながら決めていきます。

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です