Raspberry Piでゆっくり声
知り合いのところに某部材販売サイトからRaspberry Pi入荷のお知らせが届いたと聞きまして、便乗して自分の分も頼んでみました。
手元にDE0で使った音声合成LSIがあったので、とりあえずI2Cでつないでしゃべらせてみることに。
i2cの送信に関しては、検索で出てきたi2c-toolsを使っております。インストールは、下記のサイトの手順に従って行いました。
Raspberry Pi I2C How-To ガイド by @azarashi55
ちょっとはまったのが、
$ sudo i2cdetect 0
これが、現行の基板だと末尾に1を指定するように変わっており、なんで認識されないのだろうと…。わかれば簡単なことでした。ちなみに、音声合成LSIのI2Cアドレスは0x2eのようです。
実際にしゃべらせるときは、i2c-toolsのi2csetコマンドで文字列を送信するのですが、1バイトずつ16進に変換する必要がありまして、シェルスクリプトを書いてみました。
(経験少ないので変なところあるかと思いますが…)
#!/bin/bash send=' -y 1 0x2e 0x00 ' str=$1 slen=${#str} i=1 while [ $i -le $slen ] do ch=`echo $1 | cut -c $i` chex=`perl -e "print unpack(\"H2\", \"$ch\")"` chex="0x${chex} " send="${send}${chex}" i=`expr $i + 1` done send="${send}0x0d i" i2cset ${send}
talk.sh ohayo-.
みたいな感じで実行させると、「おはよう」としゃべります。