WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
随笔 - 1079, 文章 - 1, 评论 - 75, 阅读 - 174万
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

微软的文本转语音服务Microsoft.CognitiveServices.Speech

Posted on   WebEnh  阅读(347)  评论(0编辑  收藏  举报

微软的Edge 浏览器里的大声朗读里-“晓晓” 很接近自然人,比起其它平台的强很多。

在AZURE 可免费体验,每月限额50万字,每个语音转换不超过10分钟长度。

C# 调用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
 
using Microsoft.CognitiveServices.Speech;//nuget 添加
using Microsoft.CognitiveServices.Speech.Audio;
 
namespace MSTextSpeech
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            SynthesizeToSpeaker();
        }
 
        async static Task SynthesizeToSpeaker()
        {
            //Find your key and resource region under the 'Keys and Endpoint' tab in your Speech resource in Azure Portal
            //Remember to delete the brackets <> when pasting your key and region!
            var reskey = "142736。。。。。。。。。。";//<paste-your-resource-key>"
            string regon = "southeastasia";//< paste-your-region>
            var config = SpeechConfig.FromSubscription(reskey , regon);
            config.SpeechSynthesisLanguage = "zh-CN"// e.g. "de-DE"
                                                                          // The voice setting will overwrite language setting.
                                                                          // The voice setting will not overwrite the voice element in input SSML.
            config.SpeechSynthesisVoiceName = "zh-CN-XiaoxiaoNeural";// "<your-wanted-voice>";
            using var synthesizer = new SpeechSynthesizer(config);
            await synthesizer.SpeakTextAsync("周二,这位18岁的女子在大型空中比赛中的金牌表现让她成为了全球关注的焦点,在中国引发了如此大的轰动,以至于社交媒体平台微博在兴趣的重压下崩溃了。但谷歌花了数年时间将自己打造成一名顶级运动员,同时也是一个对亚洲和西方品牌都有吸引力的高额模特。");
 
        }
 
 
 
        async void TestSaveMP3() {
 
            var reskey = "xxx2736axxxxxxx....";//<paste-your-resource-key>"
            string regon = "southeastasia";//< paste-your-region>
            var config = SpeechConfig.FromSubscription(reskey, regon);
            var path = AppDomain.CurrentDomain.BaseDirectory + "file.wav";
            using var audioConfig = AudioConfig.FromWavFileOutput(path);
            using var synthesizer = new SpeechSynthesizer(config, audioConfig);
            await synthesizer.SpeakTextAsync("A simple test to write to a file.");
 
        }
 
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            TestSaveMP3();
        }
 
    }
}

  

 

快速入门: https://docs.microsoft.com/zh-cn/azure/cognitive-services/speech-service/quickstarts/setup-platform?pivots=programming-language-csharp&tabs=browser%2Cdotnet%2Cwindows%2Cjre

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2016-08-18 【转】C# 中的委托和事件
2016-08-18 你知道C#中的Lambda表达式的演化过程吗
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多