gpt4 book ai didi

javascript - 将音频 blob 的 AJAX 请求发送到异步 API

转载 作者:行者123 更新时间:2023-12-03 00:03:46 25 4
gpt4 key购买 nike

我正在开发一个遗留系统,我正在尝试调用一个 HTTP 处理程序,我添加了一些从 Azure 服务检索音频 blob 的逻辑。问题是,我似乎无法将内容返回给客户端以便我可以播放它。我从 jQuery 调用得到的响应是:“System.Threading.Tasks.Task`1[System.String]”

这是processRequest代码:

public void ProcessRequest(HttpContext context)
{
var text = "walk";
Authentication auth = new Authentication("subscriptionID");
context.Response.Write(auth.getVoice(text));
}

这是 getVoice 函数:

 public async Task<string> getVoice(string text)
{
using (var client = new HttpClient())
{
try
{
client.DefaultRequestHeaders
.Add("User-Agent", "uagent");
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + this.token);
client.DefaultRequestHeaders.Add("host", "westeurope.tts.speech.microsoft.com");
client.DefaultRequestHeaders.Add("X-MICROSOFT-OutputFormat", "audio-16khz-32kbitrate-mono-mp3");
UriBuilder uriBuilder = new UriBuilder(VoiceUri);
// send xml post
var voiceTest = "<speak version='1.0' xml:lang='en-US'><voice xml:lang='en-US' xml:gender='Female'\n\rname='Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)'>\n\rWalk\n\r</voice></speak>";
var data = new StringContent(voiceTest, Encoding.UTF8, "application/xml");
data.Headers.ContentType = new MediaTypeHeaderValue("application/ssml+xml");
var result = await client.PostAsync(uriBuilder.Uri.AbsoluteUri, data);
return await result.Content.ReadAsStringAsync();
}
catch (Exception e)
{

return null;
}
}

服务器 API 调用成功,但我似乎无法在客户端接收它以便稍后向用户播放。

最佳答案

您必须解开auth.getVoice的结果。您可以使用 await 关键字来做到这一点。此外,您还需要处理程序来实现 HttpTaskAsyncHandler 类才能使其正常工作

public class TestHandler : HttpTaskAsyncHandler
{
public async override Task ProcessRequestAsync(HttpContext context)
{
var text = "walk";
Authentication auth = new Authentication("subscriptionID");
context.Response.Write(await auth.getVoice(text)); //added await here
}
//..
}

关于javascript - 将音频 blob 的 AJAX 请求发送到异步 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55069676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com