【问题标题】:Phonetic Speech Recognition语音识别
【发布时间】:2018-04-17 10:32:24
【问题描述】:

我正在尝试获得我需要的拉丁语语音识别,. . .不是单词识别,而是。 . . 语音元音和辅音识别(因为拉丁语只有 40 个发音,但超过 40,000 个单词 x 60 平均结尾 = 250 万个单词形式)。问题是, 。 . . Web Speech APIGoogle Cloud Speech 都只以听起来相似的完整单词开头(并且也来自英语语法,因为那里没有 250 万字的拉丁语法),所以我没有办法开始处理实际的语音,特别是 WORD-STEM(单词的前半部分),它区分每个单词,而不是(对我而言)无用的词尾告诉它是如何在句子中发挥作用的。理想情况下,我想要一个词干的语法,例如

  • “am-”(缩写 amo、amare、amavi、amatus等),
  • “vid-”(简写 video,videre,vidi,visus 等),
  • “laet-”(简写 laetus、laeta、laetum 等)

但语音识别技术无法搜索。
那么在哪里可以获得语音识别呢?

我更喜欢 jS、pHp 或 Node,并且更喜欢客户端,而不是流式传输。

到目前为止,这是我的代码,用于Web Speech API。关键是console.log()s,它显示了我试图挖掘每个返回的可能单词的属性:

speech.onresult = function(event) { 
    var interim_transcript = '';
    var final_transcript = '';

    for (var i = event.resultIndex; i < event.results.length; ++i) { 
        if (event.results[i].isFinal) { 
            final_transcript += event.results[i][0].transcript;

            // This console.log shows all 3 word-guess possibilities.
               console.log(event.results[i]);
                    //These console.logs show each individual possibility:
                     //console.log('Poss-1:'); console.log(event.results[i][0]);
                     //console.log('Poss-2:'); console.log(event.results[i][1]);
                     //console.log('Poss-3:'); console.log(event.results[i][2]);
            for (var a in event.results[i]) {
                for (var b in event.results[i][a]) {
                  /*This black-&-yellow console.log below shows me trying to dig into
                  each returned possibility's PROPERTIES, but alas, the only 
                  returned properties are 
                  (1) the transcript (i.e. the guessed word), 
                  (2) the confidence (i.e. the 0-to-1 likelihood of it being that word)
                  (3) the prototype 
                   */
                    console.log("%c Poss-"+a+" %c "+b+": "+event.results[i][a][b], 'background-color: black; color: yellow; font-size: 14px;', 'background-color: black; color: red; font-size: 14px;'); 
                }        
            }

      } 
    }
    if (action == "start") {
        transcription.value += final_transcript;
        interim_span.innerHTML = interim_transcript;                       
    }
};    

【问题讨论】:

  • 您可以自己构建字典。 “语音元音和辅音识别”的预期成绩单是什么?
  • 我无法构建包含 250 万个可能单词的字典。单词树结构可能有效,但现有技术并非旨在识别半个单词(只是词根,而不是词尾)。
  • “我无法构建包含 250 万个可能单词的字典。” ?为什么不? “但现有技术并非旨在识别半个单词(只是词根,而不是词尾)。” “识别”是什么意思?同样,您可以自己创建一个语法列表
  • 250 万个语音识别器在 1/4 秒内搜索完是不是太多了?我所说的“认识”是指“考虑为一种可能性”。语音识别器使用 Levenshtein 算法根据他们听到的声音的百分比可能性对候选词进行排名。但是要将词根(又是词的前半部分)排序到可能的词根字典中,他们不知道在哪里打破他们听到的声音。
  • “四分之一秒内” 时间与原始问题的查询有何关系?

标签: javascript speech-recognition latin phonetics inflection


【解决方案1】:

您可以使用创建SpeechGrammarList。另见JSpeech Grammar Format

MDN的示例描述和代码

Web Speech API 的 SpeechGrammarList 接口代表一个 包含单词或单词模式的 SpeechGrammar 对象列表 我们希望识别服务能够识别。

语法是使用 JSpeech 语法格式 (JSGF.) 定义的。其他格式 将来也可能会支持。

var grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;'
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;

【讨论】:

  • 我已经知道语音语法列表。同样,问题在于语法列表由完整的单词组成,而不是每个单词的前半部分。然而, 。 . .我现在确实想到,也许语音识别器只需要半个字就可以了。我必须测试....
  • @rudminda 不确定您创建自己的算法来过滤捕获的音频的概念是什么问题?例如,ls 是一个命令,不一定是普通字典中的一个词,尽管音频由服务捕获并且转录为 "LS",请参阅 How can I extract the preceding audio (from microphone) as a buffer when silence is detected (JS)?。您对结果做什么或不做什么是不同的询问。
  • 计算机捕捉到音频后,它会以 1 或多个据称发音相似的英语单词让我开始,但通常与最初的拉丁语单词完全不同。如果这是我的出发点,那么我没有希望可靠地过滤它。
  • @rudminda 你有能力定义语法。您是否尝试过编写您所描述的语法列表?您要解决的实际问题是什么?
  • 实际问题:让语音识别搜索词干的语法而不是完整的词。 (你不能只在语法中输入拉丁词干“for”,并希望识别器将口语“/fororum/”[“of the forums”]连接到所需的单数拉丁词典条目“forum” ”,而不是其他不受欢迎的拉丁词典条目“for” [to speak]、“foras” [outside]、“foris” [doors] 或 “fore” [going to be]。)
猜你喜欢
  • 2011-11-01
  • 2018-02-23
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2021-11-04
  • 2016-06-09
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多