名前音声の再生
2023年10月9日
ロビ2が顔認識で呼んでくれる名前の音声について以前説明記事を書きましたが、今回はロビ2のプログラムがその音声ファイルを再生する方法を解説します。
名前の音声ファイルの構成などは顔認識で呼ぶ名前のカスタマイズを参照してください。
ロビの音声ファイル再生命令
まずロビ1およびロビ2が音声ファイルを再生する命令を説明します。
通常の音声ファイルは以下の命令で再生します。
play filename="音声ファイルパス"
音声ファイルパスはvoiceフォルダーから始まるサブフォルダーを含む拡張子.wavのファイル名(例 voice\cnv\156.wav)
なおロビ2はこの命令をバイナリに落とした形式でSTARTUP.BIN(ロビ2プログラム)に記述されています。
名前ファイルもこの命令で記述できますがユーザ番号による飛び先判定も必要になり2353人分の音声となるとプログラムが膨大になってロビのメモリに収まらなくなってしまいます。
ロビ2の名前音声ファイル再生命令
そこでロビ2では名前の音声ファイルを再生する特別な命令が用意されています。
ロビ2の名前音声ファイルは次のファイルパスでロビ2のSDカードに収録されています。
voice\name\UN_[名前番号].wav
[名前番号]は1〜2353で1〜9は頭に0が付く(例 \voice\name\UN_01.wav)
名前番号をロビ2のマイコンのメモリにセットしてこの命令を実行すると対応する名前ファイルが再生されるようになっています。
このマイコンのメモリのアドレスは0x00be(2バイト)となっています。
命令の実行はマイコンのメモリのアドレス、0x0400(1バイト)と0x01e0(1バイト)に値1をセットすると音声が再生されます。
実際のロビのプログラムコードは以下のような記述となります。
<calc><const data="9"/><mem_w size="2" adr="0x00be"/></calc>
<calc><const data="1"/><mem_w size="1" adr="0x0400"/></calc>
<calc><const data="1"/><mem_w size="1" adr="0x01e0"/></calc>
この例ではUN_09.wav(あいこちゃん)という音声ファイルが再生されます。
サンプルプログラムの作成
実際にこの命令を使ったサンプルプログラムを作ってロビで実行してみます。
音声認識語「お名前は?」と聞いたら2353人の中から1人の名前をランダムで答えてくれます。
プログラムは以下のロビプログラムファイル(ソースコード)をダウンロードしてロビプログラムコンパイラーでロビに組み込んでください。
ファイルは下記のリンクを「名前を付けてリンクを保存」で保存できます。
rand_name.RM4
RM4ファイルはテキスト形式なのでメモ帳等で開く事ができます。
ロビプログラムコンパイラーを立ち上げて「読込み」ボタンを押します。
ファイルダイアログが表示されるのでダウンロードしたrand_name.RM4を開いてください。
次に「変換」ボタンを押します。
最後に「書出し」ボタンを押します。
ファイルダイアログが表示されるのでロビ2のSDカードのSTARTUP.BINを選択して開くボタン押して下さい。
このプログラムを動かす音声認識語を選んでOKボタンを押してください。
今回は「お名前は?」を選択します。
実際に動かした動画です。
ロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を伴うのであくまでも自己責任という事でお願いします。
ロビのオリジナルプログラムは必ずバックアップを取っておいて問題があればオリジナルのプログラムに戻してください。
目次に戻る