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 System.Speech.Synthesis;//引用程序集
namespace 语音合成
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
SpeechSynthesizer speaker = new SpeechSynthesizer();
private void btn01_Click(object sender, RoutedEventArgs e)
{
speaker.Speak(tb01.Text);
}
private void btn02_Click(object sender, RoutedEventArgs e)
{
TextSpeaker();
}
async void TextSpeaker()
{
tb01.Text = "正在朗读中....";
await Task.Run(() =>
{
//如果直接使用将阻塞UI线程,导致界面短暂卡死
//设置读的语气,语速等
PromptBuilder prompt = new PromptBuilder();
//添加需要读取的内容
prompt.AppendText("明月几时有,把酒问青天");
//设置中间停顿时间
prompt.AppendBreak(TimeSpan.FromSeconds(2));
//设置轻读PromptEmphasis.Reduced
prompt.AppendText("不知天上宫阙", PromptEmphasis.Reduced);
//设置语音样式
PromptStyle pstyle = new PromptStyle();
//设置读取的语速
pstyle.Rate = PromptRate.ExtraSlow;
//设置重点
pstyle.Emphasis = PromptEmphasis.Strong;
prompt.StartStyle(pstyle);
prompt.AppendText("今夕是何年");
prompt.AppendText("我欲乘风归去,又恐琼楼玉宇");
prompt.EndStyle();
prompt.AppendText("高处不胜寒。", PromptRate.Fast);
speaker.Speak(prompt);
});
tb01.Text = "朗读完成!";
}
}
}
基于C#的语音合成(不借助第三方程序集)
最新推荐文章于 2024-06-07 22:39:10 发布