如何在C#中使用Azure说话人识别API?

时间:2018-01-11 16:11:56

标签: c# azure microsoft-cognitive speaker azure-cognitive-services

我是一名学生,用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 个答案:

答案 0 :(得分:0)

对于Azure网站上的代码段,您始终需要替换{something}表单的占位符,因此在您的情况下,您需要为identificationProfileIds和{{1}填写相应的值}。此外,内容类型必须是bodyapplication/octet-stream,而不是multipart/form-data

您可以使用预先构建的客户端SDK来保存大量的输入内容。您还可以查看该SDK的源代码,例如IdentifyAsync,了解HTTP请求的构造方式。