外付けスピーカーを使用する

PaPeRo iにはUSB端子があり、USBのオーディオデバイスを使用してスピーカーなどを繋げると、そこからPaPeRo iが喋る音声を出すことができます。
しかし、ただ繋げただけでは声が本体のスピーカーから聞こえたり、外部のスピーカーから聞こえたりします。
ここでは、PaPeRo iの音声を確実に外付けスピーカー・本体スピーカーで切り替える方法を説明します。

(1) システムのオーディオ設定を書き換え可能にする
システムのオーディオ設定は/usr/share/alsaに格納されていますが、書き込みができないため、上からRAMディスクをマウントして一時的に変更ができるようにします。
(※起動するたびに実施する必要があります)

# mkdir -p /tmp/usr/share
# cp -a /usr/share/alsa /tmp/usr/share
# mount -t tmpfs tmpfs /usr/share/alsa
# cp -a /tmp/usr/share/alsa/* /usr/share/alsa

(2) 使用するデバイスの番号を調べる

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: CODEC [USB AUDIO CODEC], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

「USB AUDIO CODEC」という名前のデバイスが内蔵スピーカーになります。
この場合、0番が内蔵スピーカー、1番が外付けデバイスです。
(本体により、また、起動時にUSBデバイスを接続していたかどうかにより順序が異なるため、必ず先に確認してください)

(3) 設定ファイルを書き換え、反映する
外付けデバイス(1番)に設定してみます。

# dev_num=1
# cd /usr/share/alsa
# cp -p alsa.conf alsa.conf.org
# cat alsa.conf.org | sed -e "s/^defaults\.ctl\.card .*$/defaults.ctl.card $dev_num/" -e "s/^defaults\.pcm\.card .*$/defaults.pcm.card $dev_num/" > alsa.conf
# alsactl nrestore

この時点より、PaPeRo iが喋る音声は指定した番号のデバイスから聞こえるようになるはずです。