谷歌云演讲:区分声音?

时间:2017-02-01 18:23:32

标签: speech-recognition voice-recognition google-cloud-speech

我有兴趣编写一个能够识别多个扬声器的语音识别应用程序。例如,如果Bill,Joe和Jane正在谈论,那么应用程序不仅可以将声音识别为文本,还可以通过发言者对结果进行分类(比如0,1和2 ...因为显然/希望Google无法将声音链接到人)。

我正在寻找可能会这样做的语音识别API,而Google Cloud Speech则是排名第一的API。我查看了API文档,看看这些功能是否可用,并且还没有找到它。

我的问题是:这个功能是否存在?

注意:谷歌的支持页面说他们的工程师有时会在SO上回答这些问题,所以似乎有人可能会对#34; will"问题的一部分。

5 个答案:

答案 0 :(得分:5)

IMB的文字服务演讲就是这样做的。如果你使用他们的休息服务非常简单,只需添加你想要在url param中识别的不同发言者。这里的文档(https://console.bluemix.net/docs/services/speech-to-text/output.html#speaker_labels

它有点像这样:

 curl -X POST -u {username}:{password}
--header "Content-Type: audio/flac"
--data-binary @{path}audio-multi.flac
"https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?model=en-US_NarrowbandModel&speaker_labels=true"

然后它会返回一个带有结果和扬声器标签的json,如下所示:

{
 "results": [
    {
      "alternatives": [
        {
          "timestamps": [
            [
              "hello",
              0.68,
              1.19
            ],
            [
              "yeah",
              1.47,
              1.93
            ],
            [
              "yeah",
              1.96,
              2.12
            ],
            [
              "how's",
              2.12,
              2.59
            ],
            [
              "Billy",
              2.59,
              3.17
            ],
            . . .
          ]
          "confidence": 0.821,
          "transcript": "hello yeah yeah how's Billy "
        }
      ],
      "final": true
    }
  ],
  "result_index": 0,
  "speaker_labels": [
    {
      "from": 0.68,
      "to": 1.19,
      "speaker": 2,
      "confidence": 0.418,
      "final": false
    },
    {
      "from": 1.47,
      "to": 1.93,
      "speaker": 1,
      "confidence": 0.521,
      "final": false
    },
    {
      "from": 1.96,
      "to": 2.12,
      "speaker": 2,
      "confidence": 0.407,
      "final": false
    },
    {
      "from": 2.12,
      "to": 2.59,
      "speaker": 2,
      "confidence": 0.407,
      "final": false
    },
    {
      "from": 2.59,
      "to": 3.17,
      "speaker": 2,
      "confidence": 0.407,
      "final": false
    },
    . . .
  ]
}

他们还有不同平台的Web套接字选项和SDK,可以访问它,而不仅仅是休息调用。

祝你好运

答案 1 :(得分:3)

我知道没有当前的提供商将其作为语音识别API的内置部分。

我已将Microsoft Cognitive Services - Speaker Recognition API用于类似的内容,但音频会单独提供给API使用Speech Recognition API

能够将两者结合起来会很有用。

答案 2 :(得分:1)

说话人识别和说话人区分之间存在很大差异。大部分云AI平台主要执行说话者区分。 但是Nuance是唯一一家声称提供演讲者身份证明的公司,但是您需要购买他们的许可证。 https://www.nuance.com/en-nz/omni-channel-customer-engagement/security/multi-modal-biometrics.html

答案 3 :(得分:0)

Microsoft现在将“说话者识别”作为“对话转录”的一部分,该功能将实时语音识别,说话者识别和双向化结合在一起。这是他们语音服务的高级功能。此处描述:

https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/conversation-transcription-service

共有3个步骤:

  1. 收集用户的语音样本。
  2. 使用用户语音样本生成用户个人资料
  3. 使用语音SDK识别用户(发言人)并转录语音

这在页面的下图中显示:

enter image description here

当前在以下区域中仅限于en-USzh-CNcentraluseastasia

答案 4 :(得分:-4)

Google最近发布了在您的应用中访问用户位置,名称和用户唯一ID的功能。

文档可在以下位置找到: https://developers.google.com/actions/reference/nodejs/AssistantApp#getUser

使用getUserName获取用户姓名的示例:

uint8_t*