山形のohisamaです。
山形は、雨が降って秋らしくなりました。
がんばろう、東北。
昔やって、動かなくて悔しかったので、やってみました。
結果は、android1.5で動きました。
「りんごをさんこください」の音声合成音を利用して
「リンゴが3個」と認識しました。
環境は、libjulius.aとlibsent.aをsuse linux上で
android_build.shでビルドしました。ndkは、r7bです。
windows7上で、libjulius.aとlibsent.aとヘッダーファイルを
コピーしてjniの
android.mkでlibjulius.soをビルドしました。
ndkは、r8です。
お困りなら、直接メールください。協力できると思います。
-----Original Message-----
From:
android-g...@googlegroups.com
[mailto:
android-g...@googlegroups.com]On Behalf Of pez
Sent: Wednesday, September 19, 2012 1:57 PM
To:
android-g...@googlegroups.com
Subject: [work] [android-group-japan: 20012] Re: Android音声認識
JuliusForAndroidのビルドがうまくいきません
julius-4.2.2ディレクトリでandroid_build.shがうまくいかない問題は、
android_build.sh の記載内容を以下のとおり修正することで解決できました。
-----------------------
export
TARGET_DIR="C:/androidRD/androidApps/tech-sketch-JuliusForAndroid-95e3c38/jn
i/"
export NDK_ROOT="C:/android-ndk-r8b"
-----------------------
しかし、jniディレクトリでndk-buildする点で以下のエラーで
手詰まりしています。
-----------------------
$ ndk-build
Cygwin : Generating dependency file converter script
Compile thumb : julius_arm <= interface.c
SharedLibrary : libjulius_arm.so
C:/android-ndk-r7b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/b
in/../lib/gcc/arm-linux-androideabi/4.4
.3/../../../../arm-linux-androideabi/bin/ld.exe: cannot find -ljulius
collect2: ld returned 1 exit status
/cygdrive/c/android-ndk-r7b/build/core/
build-binary.mk:314: recipe for
target `/cygdrive/c/androidRD/androidApps/te
ch-sketch-JuliusForAndroid-95e3c38/obj/local/armeabi/libjulius_arm.so'
failed
make: ***
[/cygdrive/c/androidRD/androidApps/tech-sketch-JuliusForAndroid-95e3c38/obj/
local/armeabi/libjulius_arm.s o] Error 1
-----------------------
「cannot find -ljulius」とのことで、
Juliusのライブラリが見つからないようです。。。orz
2012年9月19日水曜日 12時56分12秒 UTC+9 pez:
https://github.com/tech-sketch/JuliusForAndroid
↑こちらのサンプルソースを参考に
音声認識アプリを作成してみたいと思っています。
しかし、このサンプルは開発環境が以下のとおりであり、
-----------------------
OS:Mac OS X Lion (10.7.4)
Android: Nexus 7 (Android 4.1.1)
Android SDK:API-15
Android NDK:r8b
-----------------------
私の開発環境と違うため、うまく開発ができないでいます。
[私の開発環境]
-----------------------
OS:WindowsXP SP3
Android: Galaxy S2 (Android4.0)
Android SDK:API-15
Android NDK:r8b
-----------------------
上記サイトに書かれている手順で
julius-4.2.2ディレクトリでandroid_build.sh を私の開発環境用に編集しました
が、
以下のエラーが出てしまい、うまくいきません。
[エラー内容]
-----------------------
$ ./android_build.sh
make: *** ターゲット `clean' を make するルールがありません. 中止.
loading cache ./config.cache
checking host system type... arm-unknown-eabi
checking host specific optimization flag... skipped
checking for gcc...
/cygdrive/c/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/
windows/bin/arm-linux-androideabi-gcc -mandroid --sysroot=/cygdrive/c/androi
d-ndk-r8b/platforms/android-8/arch-arm
checking whether the C compiler
(/cygdrive/c/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt
/windows/bin/arm-linux-androideabi-gcc -mandroid --sysroot=/cygdrive/c/andro
id-ndk-r8b/platforms/android-8/arch-arm -nostdlib -DANDROID_CUSTOM -DANDROID
_DEBUG -Wl,-rpath-link=/cygdrive/c/android-ndk-r8b/platforms/android-8/arch-
arm/usr/lib/ -L/cygdrive/c/android-ndk-r8b/platforms/android-8/arch-arm/usr/
lib/) works... no
configure: error: installation or configuration problem: C compiler cannot
create executables.
make: *** ターゲットが指定されておらず, makefile も見つかりません. 中止.
make: *** ターゲット `install' を make するルールがありません. 中止.
-----------------------
スクリプトを読んでみると、
-----------------------
make clean
echo "ac_cv_c_bigendian=\${ac_cv_c_bigendian=yes}" > config.cache
./configure --host=arm-eabi --prefix=$TARGET_DIR
make
make install
-----------------------
となっていましたので、
cygwinで
/configure --host=arm-eabi --prefix=$TARGET_DIR(tech-sketch-JuliusForAndroid
-95e3c38/jni/への絶対パスを指定)
すると、makeファイルが出来上がるようなので、
makeすると以下のエラーが出てしまい、手詰まりになっています。
-----------------------
gcc -g -O2 -Iinclude -DHAVE_CONFIG_H -o src/util/jlog.o -c src/util/jlog.c
src/util/jlog.c:39:25: fatal error: android/log.h: No such file or directory
コンパイルが中断されました。
Makefile:15: recipe for target `src/util/jlog.o' failed
make[1]: *** [src/util/jlog.o] Error 1
-----------------------
上記ログ以降はlsentライブラリが無いためにmake処理ができない旨のエラーが
ダーっと流れてしまいます。
-----------------------
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot
find -lsent
-----------------------
おそらく何かしらのパスの指定がうまく出来ていないために、
android/log.h が見つからなくて、うまくいかないのだと思います。
すみませんが、上記サイトでJuliusをmakeしたことがある方がいらっしゃいました
ら、
正しい手順をご教授いただけないでしょうか?
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られて
います。
このディスカッションをウェブ上で閲覧するには、
https://groups.google.com/d/msg/android-group-japan/-/mqst4XuIxY8J にアクセ
スしてください。
このグループに投稿するには、
android-g...@googlegroups.com にメールを
送信してください。
このグループから退会するには、
android-group-j...@googlegroups.com にメールを送信してくださ
い。
詳細については、
http://groups.google.com/group/android-group-japan?hl=ja か
らこのグループにアクセスしてください。