小编Gra*_*ing的帖子

Android语音识别作为Android 4.1和4.2上的服务

我已经成功地将连续语音识别工作(使用SpeechRecognizer类)作为服务,适用于4.1以上的所有Android版本.我的问题是关于让它在版本4.1和4.2上运行,因为众所周知,有一个问题是,API没有按照文档识别启动后几秒钟的记录,如果没有检测到语音输入那么它就像如果语音识别器无声地死亡.(http://code.google.com/p/android/issues/detail?id=37883)

我找到了一个问题,提出解决这个问题的方法(语音识别在几秒钟后停止监听),但我不确定如何实现此解决方案所需的处理程序.我知道这种解决方法每隔几秒钟会发生一次"嘟嘟"声,但对我来说,获得连续的语音识别更为重要.

如果有人有任何其他替代解决方法,那么我也想听听.

android speech-recognition android-4.2-jelly-bean

53
推荐指数
4
解决办法
6万
查看次数

使用 startWith 从 Observable 创建一个 Observable

我正在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)

rxjs rxjs5 angular

6
推荐指数
2
解决办法
7423
查看次数