我已经成功地将连续语音识别工作(使用SpeechRecognizer类)作为服务,适用于4.1以上的所有Android版本.我的问题是关于让它在版本4.1和4.2上运行,因为众所周知,有一个问题是,API没有按照文档识别启动后几秒钟的记录,如果没有检测到语音输入那么它就像如果语音识别器无声地死亡.(http://code.google.com/p/android/issues/detail?id=37883)
我找到了一个问题,提出解决这个问题的方法(语音识别在几秒钟后停止监听),但我不确定如何实现此解决方案所需的处理程序.我知道这种解决方法每隔几秒钟会发生一次"嘟嘟"声,但对我来说,获得连续的语音识别更为重要.
如果有人有任何其他替代解决方法,那么我也想听听.
我正在Observable用另一个输入过滤一个Observable- 过滤的输入来自用户。
过滤是通过 RxJS operator 完成的combineLatest。使用这意味着在订阅此流时,在两个源 Observable 都发出发射之前不会发出任何值 - 我希望创建的流在创建时发出(没有任何过滤),然后再进行任何用户输入。
我想我应该使用startWith操作符,以便流在创建时发出发射,但我无法弄清楚如何从 Observable 中播种。使用 Observable 是因为数据来自 Firebase 并使用FirebaseListObservable's处理。
下面是我目前正在做的事情的拼凑版本。
let tagInput = document.getElementById('tags');
let tagExclusionStream = Observable
.fromEvent(tagInput, 'input')
.map((e: any) => createsArrayFromInput(e.target.value));
let allTags: Observable<any[]> = getAllTags();
let filteredTags = allTags
.combineLatest(tagExclusionStream, (tags, tagExclusions) => {
return tags.filter((tag: any) => tagExclusions.indexOf(tag.$key) == -1)
});
// I want this to print out without needing the tagExclusionStream to emit first
filteredTags.subscribe(tags => …Run Code Online (Sandbox Code Playgroud)