0

我正在尝试从 HTML5 Web Speech API 上的 HTML5Rocks 文章中开发一些代码,目前仅在 Google Chrome 中支持。因此,我的代码问题仅出现在 Google Chrome 中。

我要做的是提醒用户在说出警报一词后所说的一切。因此,警报的反应就像一个命令,在说出警报之后,代码会在警报一词之后提醒所有内容。

现在,我遇到了两个问题:

  1. 当说“警报(在此处插入要警报的消息)”并且是第一件事时,警报不会发生。但是当用户先说一些东西然后说“警报(插入要在此处发出警报的消息)”时,警报就会发生。每当说“警报(插入要在此处发出警报的消息)时,我怎样才能让它发出警报?

  2. 现在,我的第二个问题是警告的内容。除了单词 alert 之外,final_transcript 中的所有内容都会被提醒。我想要做的是拆分 final_transcript,以便提醒单词 alert 之后的所有内容。我怎样才能得到它,以便只有在单词 alert 之后的 final_transcript 中的文本被提醒。

目前,我正在做的是转录所有内容,然后拆分转录内容并在更改后提醒所有内容。或者至少,这就是我想要做的。

对于理解和解决这两个问题的任何帮助,我将不胜感激。

这是我发出警报的代码:

recognition.onresult = function(event) {
var interim_transcript = '';
for (var i = event.resultIndex; i < event.results.length; ++i) {
  if (event.results[i].isFinal) {
    final_transcript += event.results[i][0].transcript;
  } else {
    interim_transcript += event.results[i][0].transcript;
  }
}
final_transcript = capitalize(final_transcript);
final_span.innerHTML = linebreak(final_transcript);
interim_span.innerHTML = linebreak(interim_transcript);

var str = final_transcript;
var val = null;
if(/ alert{0,1}/.test(str)) {
    val = str.split(/ alert{0,1}/);
    alert(val);
}
};

而且因为不在服务器上运行时麦克风权限被拒绝,所以我可以有一个 JS Fiddle 示例。所以我在 Google Drive 上托管。

这是一个现场示例:https ://googledrive.com/host/0BwJVaMrY8QdcT0pIdGRmcjB5NkE/mic.html

4

0 回答 0