[Armadillo:06118] Re: Armadillo-440 & Froyoでの音声検索(VoiceSearch.apk)を動作させたい

kodera email@hidden
2010年 11月 5日 (金) 20:16:24 JST


koderaです。

こちらも少し進捗がありましたのでご報告いたします。
起動時に出力されていた、ALSLibのエラーは出力されなくなりましたが、
新たなエラーが、音声認識時に出力されるようになりました。

予想では、ALSA関連の設定ファイル(asound.conf、asound.state)内の
設定値をArmadillo-500FX&Android向けに調整する必要があると考えております。
Armadillo-500FX&Androidでの、ALSAの使用方法をご存じの方がおられましたら、助言をお願い致します。
詳細については、後述致します。

> 手元では未定義classを呼んでいるエラーが出ています。
> Androidのバージョン違いが原因かもしれません。

こちらでは、そのようなエラーは出力されておりませんので、
やはりバージョンによる違いかもしれませんね。

■エラー内容
・起動時に出力されていたエラー(修正により出力されなくなった)
ERROR/ALSALib(4102): external/alsa-lib/src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL AndroidPlayback
ERROR/AudioHardwareALSA(4102): Unable to attach mixer to device AndroidPlayback: No such file or directory
ERROR/ALSALib(4102): external/alsa-lib/src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL AndroidRecord
ERROR/AudioHardwareALSA(4102): Unable to attach mixer to device AndroidRecord: No such file or directory

・音声認識実行時に出力されるエラー(修正後に出力されるようになった)
ERROR/ALSALib(4283): external/alsa-lib/src/control/setup.c:555:(add_elem) Cannot obtain info for CTL elem (MIXER,'Analog Capture Volume',0,0,0): No such file or directory
ERROR/ALSALib(4283): external/alsa-lib/src/control/setup.c:555:(add_elem) Cannot obtain info for CTL elem (MIXER,'Analog Capture Volume',0,0,0): No such file or directory
ERROR/ALSALib(4283): external/alsa-lib/src/control/setup.c:555:(add_elem) Cannot obtain info for CTL elem (MIXER,'Analog Capture Volume',0,0,0): No such file or directory

■実施した修正内容
下記サイトを参考にALSA関連の設定を行う事でエラーが出力されなくなりました。

・参考サイト:参考箇所
 http://labs.beatcraft.com/ja/index.php?bc9%2Fbc9-android-sdk%20setup
  -BoardConfig.mk修正
  -init.armadillo500fx.rc修正
 http://code.google.com/p/patch-hosting-for-android-x86-support/wiki/ALSA
  -BoardConfig.mk修正
  -devices.c修正

・ALSA関連の設定ファイル(asound.conf、asound.state)について
【asound.conf】
 EM-1の下記ディレクトリにあるファイルを使用しました。
 beagleボード用の設定のようなので、どのような値を設定するべきかを調査中です。
 $EM1_ANDROID/vendor/ti/omap3beagle/asound.conf

【asound.state】
 Ubuntu上で、「alsamixer」というコマンドを用いて作成しました。
  Armadillo上で、alsamixerを動作させれれば正しいファイルが作れそうだと考えております。
 が、まだalsamixerを動作させるに至っていません。

//↓ファイル内容↓////////////////////////////////////
state.armadillo500fx {   //←state.AudioPCIの部分をstate.armadillo500fxに変更
	control.1 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Master Playback Switch'
		value true
	}
	control.2 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Master Playback Volume'
		value.0 51
		value.1 51
	}
	control.3 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Phone Playback Switch'
		value false
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Phone Playback Volume'
		value.0 0
		value.1 0
	}
	control.5 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Playback Switch'
		value true
	}
	control.6 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Mic Playback Volume'
		value.0 50
		value.1 50
	}
	control.7 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Mic Boost (+20dB)'
		value true
	}
	control.8 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Line Playback Switch'
		value true
	}
	control.9 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Line Playback Volume'
		value.0 46
		value.1 46
	}
	control.10 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'CD Playback Switch'
		value true
	}
	control.11 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'CD Playback Volume'
		value.0 51
		value.1 51
	}
	control.12 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Video Playback Switch'
		value false
	}
	control.13 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Video Playback Volume'
		value.0 0
		value.1 0
	}
	control.14 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Aux Playback Switch'
		value true
	}
	control.15 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'Aux Playback Volume'
		value.0 47
		value.1 47
	}
	control.16 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'PCM Playback Switch'
		value true
	}
	control.17 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 63'
		iface MIXER
		name 'PCM Playback Volume'
		value.0 51
		value.1 51
	}
	control.18 {
		comment.access 'read write'
		comment.type ENUMERATED
		comment.count 2
		comment.item.0 Mic
		comment.item.1 CD
		comment.item.2 Video
		comment.item.3 Aux
		comment.item.4 Line
		comment.item.5 Mix
		comment.item.6 'Mix Mono'
		comment.item.7 Phone
		iface MIXER
		name 'Capture Source'
		value.0 Mic
		value.1 Mic
	}
	control.19 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'Capture Switch'
		value true
	}
	control.20 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 15'
		iface MIXER
		name 'Capture Volume'
		value.0 0
		value.1 0
	}
	control.21 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.22 {
		comment.access read
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value cf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
	}
	control.23 {
		comment.access 'read write'
		comment.type IEC958
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Default'
		value '0082000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
	}
	control.24 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
	}
}

以上よろしくお願い致します。




armadillo メーリングリストの案内