Top > 日記 > 2013-04-13

Raspberry Pi での音源切り替え

usb-audioなどを(挿し)追加して、内臓音源との切り替えがようやく判明。

  1. 準備
    $ 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]
  2. OpenJTalk の場合
     $ 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
     
  3. 音源のコントロール*1
     直接 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%
     
    以下工事中

    URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White


*1 http://d.hatena.ne.jp/kakurasan/20070907/p1

リロード   新規 下位ページ作成 凍結解除 差分 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sat, 13 Apr 2013 21:07:54 JST (4023d)