验证离线场景下,命令词识别能力,始终无法识别传入的命令词。
切换到其他离线支持的prop时,识别OK, 就是离线自定义命令词场景不识别,始终报:“No recognition result matched., reason: 7998, no confidence.”错误。
请BD的大神协助看看~
==========================
详细如下:
10-10 19:00:59.610: D/Sdk2Api(3969): ----点击了“开始”
10-10 19:00:59.610: E/Sdk2Api(3969): extra: Bundle[{asr-base-file-path=/data/data/com.assistant.demo/files/asr/baidu/s_1, language=cmn-Hans-CN, sample=16000, nlu=disable, vad=search, prop=100021, slot-data={"name":["张三","李四","章三","长城宽带","李必龙"],"usercommand":["对","是的","OK","不对","不是","不是的","嗯","挂了","烦死了"]}}]
10-10 19:00:59.610: D/Sdk2Api(3969): ----参数集:
10-10 19:00:59.750: D/Device(3969): read deviceID:55B9CE5E92367C5FA1738C2B86AE0007|382710020449668
10-10 19:00:59.790: D/Device(3969): read deviceID:55B9CE5E92367C5FA1738C2B86AE0007|382710020449668
10-10 19:00:59.840: I/android.media.AudioRecord(3969): startRecording
10-10 19:00:59.840: D/AudioRecordPermission(3969): AudioRecordPermission
10-10 19:00:59.860: D/StubController(3969): holdAndGetPermissionType permissionType:128 uid:10345 pid:3969
10-10 19:00:59.860: D/StubController(3969): addRequestCount, mRequestCount =1 mPhoneIDRequestCount: 0 mLocationRequestCount: 0 permissionType is: 128
10-10 19:00:59.860: D/StubController(3969): holdForGetPermissionSelection mRequestCount:1
10-10 19:00:59.870: D/StubController(3969): beforeShowDialogCheckResult:1
10-10 19:00:59.870: D/StubController(3969): minusRequestCount, mRequestCount =0 mPhoneIDRequestCount: 0 mLocationRequestCount: 0 permissionType is: 128
10-10 19:00:59.870: I/AudioRecordPermission(3969): remindWithResult:false
10-10 19:00:59.880: I/AudioRecord(3969): sendStateChangedIntent, state=3
10-10 19:00:59.980: D/Sdk2Api(3969): ----准备就绪,可以开始说话
10-10 19:01:00.420: D/Sdk2Api(3969): ----*引擎切换至离线
10-10 19:01:00.440: D/Sdk2Api(3969): ----检测到用户的已经开始说话
10-10 19:01:00.470: I/View(3969): ssignParent(ViewParent parent) parent is: android.view.ViewRootImpl@eba55f9
10-10 19:01:00.510: D/mali_winsys(3969): new_window_surface returns 0x3000
10-10 19:01:00.550: V/RenderScript(3969): 0xabc372d0 Launching thread(s), CPUs 8
10-10 19:01:02.430: V/Toast(3969): HIDE: android.widget.Toast$TN@38209180
10-10 19:01:02.430: I/View(3969): ssignParent(ViewParent parent) parent is: null
10-10 19:01:02.430: I/View(3969): ssignParent(ViewParent parent) parent is: null
10-10 19:01:04.240: W/System.err(3969): java.lang.Exception: #7, No recognition result matched., reason: 7998, no confidence.
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.OfflineDecoder.needParseMoreResult(OfflineDecoder.java:153)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.OfflineDecoder.onExecute(OfflineDecoder.java:106)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.MergedDecoder.onExecute(MergedDecoder.java:195)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder$Task.call(AbsStreamDecoder.java:139)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder$Task.call(AbsStreamDecoder.java:100)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-10 19:01:04.240: W/System.err(3969): at java.lang.Thread.run(Thread.java:831)
10-10 19:01:04.240: W/System.err(3969): java.util.concurrent.ExecutionException: java.lang.Exception: #7, No recognition result matched., reason: 7998, no confidence.(cannot switch to online: network unavailable.)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.FutureTask.report(FutureTask.java:93)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.FutureTask.get(FutureTask.java:163)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder.checkFutures(AbsStreamDecoder.java:85)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder.read(AbsStreamDecoder.java:77)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.MergedDecoder.read(MergedDecoder.java:136)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AsrSession.collectResultMessages(AsrSession.java:378)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AsrSession.onExecute(AsrSession.java:330)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsSession.run(AbsSession.java:73)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-10 19:01:04.240: W/System.err(3969): at java.lang.Thread.run(Thread.java:831)
10-10 19:01:04.240: W/System.err(3969): Caused by: java.lang.Exception: #7, No recognition result matched., reason: 7998, no confidence.(cannot switch to online: network unavailable.)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.MergedDecoder.onExecute(MergedDecoder.java:221)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder$Task.call(AbsStreamDecoder.java:139)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.AbsStreamDecoder$Task.call(AbsStreamDecoder.java:100)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
10-10 19:01:04.240: W/System.err(3969): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
10-10 19:01:04.240: W/System.err(3969): ... 3 more
10-10 19:01:04.240: W/System.err(3969): Caused by: java.lang.Exception: #7, No recognition result matched., reason: 7998, no confidence.
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.OfflineDecoder.needParseMoreResult(OfflineDecoder.java:153)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.OfflineDecoder.onExecute(OfflineDecoder.java:106)
10-10 19:01:04.240: W/System.err(3969): at com.baidu.speech.MergedDecoder.onExecute(MergedDecoder.java:195)
10-10 19:01:04.240: W/System.err(3969): ... 8 more
10-10 19:01:04.250: I/android.media.AudioRecord(3969): stopRecording
10-10 19:01:04.330: I/AudioRecord(3969): sendStateChangedIntent, state=1
10-10 19:01:04.380: D/Sdk2Api(3969): ----识别失败:没有匹配的识别结果:7
10-10 19:01:04.390: D/Sdk2Api(3969): ----EVENT_ERROR, #7, No recognition result matched., reason: 7998, no confidence.(cannot switch to online: network unavailable.)
多谢答复, 已经了解到了原因。
这块目前有限制,还没发布。 需要等半个月左右上线。
离线命令词识别需要开发者自己传入需要识别的命令词,然后切换到命令词模式下识别,不清楚你的离线命令是否传入。
捉急啊。。。
百度的各位大神能给个意见不》》》》
是因为离线不支持自定义 命令词识别么?
但从文档说明看是支持命令词的。