**Raspberry Pi での音源切り替え [#u0391ac5] usb-audioなどを(挿し)追加して、内臓音源との切り替えがようやく判明。 +準備 $ sudo jed /etc/modprobe.d/alsa-base.conf options snd-usb-audio index=0 とすると、usb-audio アダプターを挿してrebootすると、defaultが0となる。 確認方法は $ aplay -l **** ハードウェアデバイス PLAYBACK のリスト **** カード 0: U0x41e0x30d3 [USB Device 0x41e:0x30d3], デバイス 0: USB Audio [USB Audio] カード 1: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA] +OpenJTalk の場合 $ jsay 文字列 で喋ってくれるが、音源を内蔵のbcm2835からusb-audioに換えるには、 $ jsay 文字列 で喋ってくれるが、音源を内蔵のbcm2835からusb-audioにするには、 jsay(スクリプト)の一部を変更する。 #!/bin/sh TMP=/tmp/jsay.wav #cd /usr/share/hts-voice/nitech-jp-atr503-m001 cd /usr/share/hts-voice/mei_happy echo "$1" | open_jtalk \ -td tree-dur.inf \ -tf tree-lf0.inf \ -tm tree-mgc.inf \ -md dur.pdf \ -mf lf0.pdf \ -mm mgc.pdf \ -dm mgc.win1 \ -dm mgc.win2 \ -dm mgc.win3 \ -df lf0.win1 \ -df lf0.win2 \ -df lf0.win3 \ -dl lpf.win1 \ -ef tree-gv-lf0.inf \ -em tree-gv-mgc.inf \ -cf gv-lf0.pdf \ -cm gv-mgc.pdf \ -k gv-switch.inf \ -s 16000 \ -a 0.05 \ -u 0.0 \ -jm 1.0 \ -jf 1.0 \ -jl 1.0 \ -x /var/lib/mecab/dic/open-jtalk/naist-jdic \ -ow $TMP && \ aplay -D plughw:0,0 -q $TMP ← 内臓にするには1,0に。 rm -f $TMP +音源のコントロール((http://d.hatena.ne.jp/kakurasan/20070907/p1)) 直接 alsamixer を実行して音量等を変化させてもよいが、以下のようにコマンドで変更できる。 pi@raspberrypi ~ $ amixer -c 0 ← #0の音源の状態を表示させる。 Simple mixer control 'Speaker',0 ←のアポストロフィー"'"で囲まれた文字がコントロール項目で、コマンドで値を設定することができる。 Capabilities: pvolume pswitch pswitch-joined penum Playback channels: Front Left - Front Right Limits: Playback 0 - 151 Mono: Front Left: Playback 46 [30%] [-19.75dB] [on] Front Right: Playback 46 [30%] [-19.75dB] [on] Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined penum Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 32 Capture 0 - 16 Mono: Playback 12 [38%] [17.92dB] [off] Capture 0 [0%] [0.00dB] [on] Simple mixer control 'Auto Gain Control',0 Capabilities: pswitch pswitch-joined penum Playback channels: Mono Mono: Playback [on] 【書式】値をセットする書式は $ amixer (-c [カード番号]) set [コントロール] [値] 上記の場合を例にすると $ amixer -c 0 set Speaker 50% ''&color(Red){以下工事中};'' #clear #comment #navi(日記) |