如何在 C# 中使用 Azure 说话人识别 API?
Posted
技术标签:
【中文标题】如何在 C# 中使用 Azure 说话人识别 API?【英文标题】:How can I use the Azure speaker recognition API in C#? 【发布时间】:2018-01-11 16:11:56 【问题描述】:我是一名学生,正在使用 C# 进行语音相关项目。
我已经使用 Azure Bing Speech API 和 Google Cloud Speech API 将人们的声音作为文本获取。
但我还需要 Azure Speaker Recognition API 来使用语音识别和验证单个说话者。
但是,即使 Google 搜索,也没有太多关于此 API 的信息。而 Azure 站点(尤其是使用包含用户声音的 wav 文件识别和验证说话者的部分)是如此简单......
我不知道如何加载 wav 文件以在 C# 代码中识别和验证扬声器。
如何使用 Azure Speaker Recognition API 做到这一点?
我尝试过的:
以下是Azure Site 上的示例代码。
static async void MakeRequest()
var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);
// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "subscription-key");
// Request parameters
queryString["shortAudio"] = "true";
var uri = "https://westus.api.cognitive.microsoft.com/spid/v1.0/identify?identificationProfileIds=identificationProfileIds&" + queryString;
HttpResponseMessage response;
// Request body
byte[] byteData = Encoding.UTF8.GetBytes("body");
using (var content = new ByteArrayContent(byteData))
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
response = await client.PostAsync(uri, content);
【问题讨论】:
【参考方案1】:对于 Azure 站点上的代码 sn-ps,您始终需要替换 something
形式的占位符,因此您需要为 identificationProfileIds
和 body
填写适当的值。此外,内容类型必须是application/octet-stream
或multipart/form-data
,而不是application/json
。
改为使用预构建的客户端SDK,您将节省大量输入。您还可以查看该 SDK 的源代码,例如 IdentifyAsync,了解如何构造 HTTP 请求。
【讨论】:
是的。该代码只是来自 Azure 站点的示例代码。我最终使用了说话人识别 API。我阅读了github.com/Microsoft/Cognitive-SpeakerRecognition-Windows 上的自述文件并应用了该示例。谢谢。 @cthrash 这在 .net 核心中不可用,我不想发送 IdentificationProfileIds。有没有可能 前面提到的 github site 有该库的 .NET Framework 源代码,我怀疑您可以不费力气地为 .NET Core 重新编译。快速搜索并没有找到预制的。以上是关于如何在 C# 中使用 Azure 说话人识别 API?的主要内容,如果未能解决你的问题,请参考以下文章