C#调用edge tts
时间: 2025-04-20 15:50:52 浏览: 23
### 如何在C#中使用Edge TTS API
为了在C#应用程序中集成Microsoft Edge的TTS(Text To Speech)功能,可以利用`System.Speech`命名空间中的类来实现基本的文字转语音功能。然而,对于更高级的功能以及更好的跨平台支持,推荐通过HTTP请求调用Azure Cognitive Services下的Text to Speech REST API。
下面是一个简单的例子展示如何发送HTTP POST请求到Azure Text to Speech服务并播放返回的声音文件:
```csharp
using System;
using System.Net.Http;
using System.Text;
public class Program {
private static readonly string subscriptionKey = "your_subscription_key";
private static readonly string region = "your_region"; // e.g., westus
public async Task SpeakAsync(string textToSpeak) {
var url = $"https://{region}.tts.speech.microsoft.com/cognitiveservices/v1";
using (var client = new HttpClient()) {
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
var requestBody = new StringBuilder();
requestBody.AppendLine("<speak version='1.0' xml:lang='en-US'>");
requestBody.AppendLine($"<voice xml:lang='en-US' name='en-US-JennyNeural'>{textToSpeak}</voice>");
requestBody.AppendLine("</speak>");
HttpContent content = new StringContent(requestBody.ToString(), Encoding.UTF8, "application/ssml+xml");
HttpResponseMessage responseMessage = await client.PostAsync(url, content);
if(responseMessage.IsSuccessStatusCode){
byte[] audioBytes = await responseMessage.Content.ReadAsByteArrayAsync();
// Play or save the received audio bytes here.
Console.WriteLine("Audio successfully generated.");
} else {
Console.WriteLine($"Error occurred while generating speech: {responseMessage.ReasonPhrase}");
}
}
}
}
```
此代码片段展示了创建一个异步方法`SpeakAsync`,它接受要转换成语音的字符串参数,并向指定区域的服务端点发起POST请求[^4]。需要注意的是,在实际应用之前应该替换掉示例中的订阅密钥(`subscriptionKey`)和地区名称(`region`)为自己的有效值。
阅读全文
相关推荐















