Google云语音:辨音?
Google Cloud Speech: Distinguish Voices?
我有兴趣编写一个可以识别多个说话者的语音识别应用程序。例如,如果 Bill、Joe 和 Jane 在说话,那么应用程序不仅可以将声音识别为文本,还可以按说话者对结果进行分类(比如 0、1 和 2...因为 obviously/hopefully Google 有无法将声音与人联系起来)。
我正在寻找可能执行此操作的语音识别 API,Google Cloud Speech 名列前茅 API。我查看了 API 文档以查看此类功能是否可用,但没有找到。
我的问题是:does/will这个功能存在吗?
注意:Google 的支持页面说他们的工程师有时会在 SO 上回答这些问题,因此似乎有人可能对问题的 "will" 部分有答案。
据我所知,目前没有提供者将此作为其语音识别的内置部分 API。
我用过Microsoft Cognitive Services - Speaker Recognition API for something similar, but the audio is provided to the API separately to use of their Speech Recognition API.
能够将两者结合起来会很有用。
IMB 的语音转文本服务可以做到这一点。如果您使用他们的休息服务非常简单,只需添加您想要在 url 参数中识别不同的扬声器。此处的文档 (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"
然后它会 return 一个 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
},
. . .
]
}
他们还有用于不同平台的网络套接字选项和 SDK,可以访问它,而不仅仅是休息调用。
祝你好运
Google 最近发布了在您的应用中访问用户位置、姓名和用户唯一 ID 的功能。
文档可在以下位置找到:
https://developers.google.com/actions/reference/nodejs/AssistantApp#getUser
使用 getUserName 获取用户名的示例:
const app = new DialogflowApp({request: req, response: res});
const REQUEST_PERMISSION_ACTION = 'request_permission';
const SAY_NAME_ACTION = 'get_name';
function requestPermission (app) {
const permission = app.SupportedPermissions.NAME;
app.askForPermission('To know who you are', permission);
}
function sayName (app) {
if (app.isPermissionGranted()) {
app.tell('Your name is ' + app.getUserName().displayName));
} else {
// Response shows that user did not grant permission
app.tell('Sorry, I could not get your name.');
}
}
const actionMap = new Map();
actionMap.set(REQUEST_PERMISSION_ACTION, requestPermission);
actionMap.set(SAY_NAME_ACTION, sayName);
app.handleRequest(actionMap);
Speaker Identification和Speaker Differentiation有很大的不同。大多数云端AI平台主要做Speaker Differentiation。
但 Nuance 是唯一一家声称提供 Speaker Identification 的公司,但你需要购买他们的许可证。 https://www.nuance.com/en-nz/omni-channel-customer-engagement/security/multi-modal-biometrics.html
Microsoft 现在将说话人识别作为对话转录的一部分,它结合了实时语音识别、说话人识别和二值化。这是他们的语音服务的高级功能。此处对此进行了描述:
有 3 个步骤:
- 收集用户的语音样本。
- 使用用户语音样本生成用户配置文件
- 使用语音 SDK 识别用户(说话者)并转录语音
这在页面的下图中显示:
目前仅限于以下地区的 en-US
和 zh-CN
:centralus
和 eastasia
。
我有兴趣编写一个可以识别多个说话者的语音识别应用程序。例如,如果 Bill、Joe 和 Jane 在说话,那么应用程序不仅可以将声音识别为文本,还可以按说话者对结果进行分类(比如 0、1 和 2...因为 obviously/hopefully Google 有无法将声音与人联系起来)。
我正在寻找可能执行此操作的语音识别 API,Google Cloud Speech 名列前茅 API。我查看了 API 文档以查看此类功能是否可用,但没有找到。
我的问题是:does/will这个功能存在吗?
注意:Google 的支持页面说他们的工程师有时会在 SO 上回答这些问题,因此似乎有人可能对问题的 "will" 部分有答案。
据我所知,目前没有提供者将此作为其语音识别的内置部分 API。
我用过Microsoft Cognitive Services - Speaker Recognition API for something similar, but the audio is provided to the API separately to use of their Speech Recognition API.
能够将两者结合起来会很有用。
IMB 的语音转文本服务可以做到这一点。如果您使用他们的休息服务非常简单,只需添加您想要在 url 参数中识别不同的扬声器。此处的文档 (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"
然后它会 return 一个 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
},
. . .
]
}
他们还有用于不同平台的网络套接字选项和 SDK,可以访问它,而不仅仅是休息调用。
祝你好运
Google 最近发布了在您的应用中访问用户位置、姓名和用户唯一 ID 的功能。
文档可在以下位置找到: https://developers.google.com/actions/reference/nodejs/AssistantApp#getUser
使用 getUserName 获取用户名的示例:
const app = new DialogflowApp({request: req, response: res});
const REQUEST_PERMISSION_ACTION = 'request_permission';
const SAY_NAME_ACTION = 'get_name';
function requestPermission (app) {
const permission = app.SupportedPermissions.NAME;
app.askForPermission('To know who you are', permission);
}
function sayName (app) {
if (app.isPermissionGranted()) {
app.tell('Your name is ' + app.getUserName().displayName));
} else {
// Response shows that user did not grant permission
app.tell('Sorry, I could not get your name.');
}
}
const actionMap = new Map();
actionMap.set(REQUEST_PERMISSION_ACTION, requestPermission);
actionMap.set(SAY_NAME_ACTION, sayName);
app.handleRequest(actionMap);
Speaker Identification和Speaker Differentiation有很大的不同。大多数云端AI平台主要做Speaker Differentiation。 但 Nuance 是唯一一家声称提供 Speaker Identification 的公司,但你需要购买他们的许可证。 https://www.nuance.com/en-nz/omni-channel-customer-engagement/security/multi-modal-biometrics.html
Microsoft 现在将说话人识别作为对话转录的一部分,它结合了实时语音识别、说话人识别和二值化。这是他们的语音服务的高级功能。此处对此进行了描述:
有 3 个步骤:
- 收集用户的语音样本。
- 使用用户语音样本生成用户配置文件
- 使用语音 SDK 识别用户(说话者)并转录语音
这在页面的下图中显示:
目前仅限于以下地区的 en-US
和 zh-CN
:centralus
和 eastasia
。