diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-02-19 10:57:31 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-02-19 10:57:31 -0800 |
commit | 848d1df23e9a0c0d98cb45905355eee05ce3fa34 (patch) | |
tree | 638162846c83a4f495f081207abc34d55f13b4d1 | |
parent | 2f8ec03aa4809cec2b0944ca9bf1c7783e11b4ae (diff) | |
download | srec-848d1df23e9a0c0d98cb45905355eee05ce3fa34.tar.gz |
auto import from //branches/cupcake/...@132276
-rw-r--r-- | config/en.us/Android.mk | 13 | ||||
-rw-r--r-- | config/en.us/dictionary/cmu6plus.ok.zip | bin | 713142 -> 628151 bytes | |||
-rw-r--r-- | srec_jni/android_speech_srec_MicrophoneInputStream.cpp | 30 |
3 files changed, 28 insertions, 15 deletions
diff --git a/config/en.us/Android.mk b/config/en.us/Android.mk index 931b431..9f5db6b 100644 --- a/config/en.us/Android.mk +++ b/config/en.us/Android.mk @@ -76,15 +76,24 @@ $(G2G_INSTALL_PATH)/%.g2g: $(LOCAL_PATH)/grammars/%.grxml $(GRXML) $(MAKE_G2G) $ # the grxml compiler expects this (and other) data files to be here. # $ g4 edit external/srec/config/en.us/dictionary/cmu6plus.ok.zip # $ make cmu6plus.ok.zip +# +# To make the resulting zip as small as possible, install advzip from +# the advancecomp suite of compression utilities. (On ubuntu, +# "apt-get install advancecomp".) It makes the output about 10% smaller. +# This make rule will fall back to 'zip' if 'advzip' is not +# available. #----------------------------------------------------------------- CMU2NUANCE=$(HOST_OUT_EXECUTABLES)/cmu2nuance DICT_DIR=$(ASR_ROOT_DIR)/config/en.us/dictionary cmu6plus.ok.zip: $(CMU2NUANCE) $(DICT_DIR)/c0.6 $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok - $(CMU2NUANCE) < $(DICT_DIR)/c0.6 > $(DICT_DIR)/c0.6.ok + $(CMU2NUANCE) < $(DICT_DIR)/c0.6 > $(DICT_DIR)/c0.6.ok sort -u $(DICT_DIR)/c0.6.ok $(DICT_DIR)/numbers.ok $(DICT_DIR)/fixit.ok $(DICT_DIR)/enroll.ok > $(DICT_DIR)/cmu6plus.ok - (cd $(DICT_DIR)/ && zip cmu6plus.ok.zip cmu6plus.ok) + $(hide) (cd $(DICT_DIR)/ && advzip -a -4 cmu6plus.ok.zip cmu6plus.ok || \ + (zip cmu6plus.ok.zip cmu6plus.ok && \ + echo -e "\n+++ advzip not installed; fell back to zip\n cmu6plus.ok.zip (`du -h cmu6plus.ok.zip | cut -f 1`) could be ~10% smaller with advzip\n")) + #----------------------------------------------------------------- diff --git a/config/en.us/dictionary/cmu6plus.ok.zip b/config/en.us/dictionary/cmu6plus.ok.zip Binary files differindex d556a84..3047ed0 100644 --- a/config/en.us/dictionary/cmu6plus.ok.zip +++ b/config/en.us/dictionary/cmu6plus.ok.zip diff --git a/srec_jni/android_speech_srec_MicrophoneInputStream.cpp b/srec_jni/android_speech_srec_MicrophoneInputStream.cpp index fdfdaed..6b0ac19 100644 --- a/srec_jni/android_speech_srec_MicrophoneInputStream.cpp +++ b/srec_jni/android_speech_srec_MicrophoneInputStream.cpp @@ -59,27 +59,29 @@ static JNIEXPORT jint JNICALL Java_android_speech_srec_Recognizer_AudioRecordNew android::AudioSystem::PCM_16_BIT, 1, fifoFrames, 0); if (ar == NULL) { - throwException(env, "java/lang/IllegalArgumentException", - "new AudioRecord::AudioRecord() failed", 0); + LOGE("Error creating AudioRecord"); } - else if (int rtn = ar->initCheck()) { - delete ar; - ar = NULL; - throwException(env, "java/lang/IllegalStateException", - "AudioRecord::initCheck() failed - another instance open?", rtn); + else { + status_t s = ar->initCheck(); + if (s != NO_ERROR) { + delete ar; + ar = NULL; + LOGE("initCheck error %d ", s); + } } + LOGV("new AudioRecord(%p)", ar); return (int)ar; } -static JNIEXPORT void JNICALL Java_android_speech_srec_Recognizer_AudioRecordStart +static JNIEXPORT int JNICALL Java_android_speech_srec_Recognizer_AudioRecordStart (JNIEnv *env, jclass clazz, jint audioRecord) { - if (int rtn = ((AudioRecord*)audioRecord)->start()) { - throwException(env, "java/lang/IllegalStateException", "AudioRecord::start failed %d", rtn); - } + LOGV("start = 0x%x", audioRecord); + return (int)(((AudioRecord*)audioRecord)->start()); } static JNIEXPORT jint JNICALL Java_android_speech_srec_Recognizer_AudioRecordRead (JNIEnv *env, jclass clazz, jint audioRecord, jbyteArray array, jint offset, jint length) { + LOGV("read(0x%x)", audioRecord); jbyte buffer[4096]; if (length > (int)sizeof(buffer)) length = sizeof(buffer); length = ((AudioRecord*)audioRecord)->read(buffer, length); @@ -93,13 +95,15 @@ static JNIEXPORT jint JNICALL Java_android_speech_srec_Recognizer_AudioRecordRea static JNIEXPORT void JNICALL Java_android_speech_srec_Recognizer_AudioRecordStop (JNIEnv *env, jclass clazz, jint audioRecord) { + LOGV("stop(0x%x)", audioRecord); if (int rtn = ((AudioRecord*)audioRecord)->stop()) { - throwException(env, "java/lang/IllegalStateException", "AudioRecord::stop failed %d", rtn); + throwException(env, "java/io/IOException", "AudioRecord::stop failed %d", rtn); } } static JNIEXPORT void JNICALL Java_android_speech_srec_Recognizer_AudioRecordDelete (JNIEnv *env, jclass clazz, jint audioRecord) { + LOGV("delete(0x%x)", audioRecord); delete (AudioRecord*)audioRecord; } @@ -110,7 +114,7 @@ static JNIEXPORT void JNICALL Java_android_speech_srec_Recognizer_AudioRecordDel static JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ {"AudioRecordNew", "(II)I", (void*)Java_android_speech_srec_Recognizer_AudioRecordNew}, - {"AudioRecordStart", "(I)V", (void*)Java_android_speech_srec_Recognizer_AudioRecordStart}, + {"AudioRecordStart", "(I)I", (void*)Java_android_speech_srec_Recognizer_AudioRecordStart}, {"AudioRecordRead", "(I[BII)I", (void*)Java_android_speech_srec_Recognizer_AudioRecordRead}, {"AudioRecordStop", "(I)V", (void*)Java_android_speech_srec_Recognizer_AudioRecordStop}, {"AudioRecordDelete", "(I)V", (void*)Java_android_speech_srec_Recognizer_AudioRecordDelete}, |