SpeechSynthesizer进入故事板
本文关键字:故事 SpeechSynthesizer | 更新日期: 2023-09-27 18:25:20
我创建了一个故事板,其中包含一些移动元素/对象,我想在故事板中添加一个SpeechSynthesizer。
这可能吗??我正在研究C#。
Storyboard myStoryboard=new Storyboard();
SpeechSynthesizer reader = new SpeechSynthesizer();
reader.Speak("This is my first speech project"); /* instead of speak I want
to add this into the storyboard
.....
myStoryboard.Children.Add(readerAnimation);
或者有没有一种方法可以将音频添加到故事板中?
如果您愿意使用音频文件,可以使用MediaTimeLine
类。然后,您可以使用SpeachSynthesizer的SetOutputToWaveFile
方法之一来创建文件。
保存从第二个链接修改的波形文件:
using (SpeechSynthesizer synth = new SpeechSynthesizer())
{
synth.SetOutputToWaveFile(@"C:'temp'Sample.wav");
PromptBuilder builder = new PromptBuilder();
builder.AppendText("Hello World !");
synth.Speak(builder);
}
Xaml
从第一链接修改为播放文件
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="100" Width="200">
<StackPanel Background="Black">
<Label Name="clickMe" Content="Click Me" Foreground="White" FontFamily="Arabic Typesetting" FontSize="20" HorizontalContentAlignment ="Center" />
<MediaElement Name="myMediaElement" Width="0" Height="0" />
<StackPanel.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.MouseDown" SourceName="clickMe">
<EventTrigger.Actions>
<BeginStoryboard Name= "myBegin">
<Storyboard x:Name="myStoryBoard" SlipBehavior="Slip">
<MediaTimeline Source="C:'temp'Sample.wav" Storyboard.TargetName="myMediaElement" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</Window>
请注意,一旦情节提要播放该文件,它将对其进行锁定。