如何在 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 形式的占位符,因此您需要为 identificationProfileIdsbody 填写适当的值。此外,内容类型必须是application/octet-streammultipart/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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中实现 Microsoft 说话人识别/验证 API?

话语长度如何影响说话人识别中的神经网络?

向预先训练的说话人识别模型中添加新说话人

使用 writehtk 进行特征提取(说话人识别)

“说话人识别和分割”[关闭]

使用 Microsoft Cognitive 进行实时说话人识别