我正在使用Windows IOT Windows.Media.SpeechRecognition& amp;和我正在使用Raspberry Pi3移植UWP应用程序。 Windows.Media.SpeechSynthesis(通过SRGS文件读取语法文件)。我正在使用MediaElement通过扬声器播放语音。麦克风和扬声器连接到Raspberry Pi。
挑战:合成与重叠之间的重叠识别,即来自说话者的声音被程序识别并循环进入。为了克服这个问题,我正在停止认可。 MediaElement.MediaEnded事件结束后启动它。不幸的是,这个事件根本没有发生。
基于各种回复 - 我在
中添加了MediaElement App.xaml
<Application.Resources> <MediaElement x:Name="mElement" />
</Application.Resources>
MainPage.xaml
<Grid x:Name="myGrid" Background="{ThemeResource
ApplicationPageBackgroundThemeBrush}">
<MediaElement x:FieldModifier="Public" x:Name="mElement"
RequestedTheme="Default" MediaEnded="MElement_MediaEnded"
CurrentStateChanged="mElement_CurrentStateChanged"/>
</Grid>
MainPage.xaml.cs
private async void MElement_MediaEnded(object sender,
Windows.UI.Xaml.RoutedEventArgs e)
{
Debug.WriteLine("*******Finally reached Mediaended: **********");
//await
MyRecognizer.ContinuousRecognitionSession.StartAsync(SpeechContinuousRecognitionMode.PauseOnRecognition);
}
private void mElement_CurrentStateChanged(object sender, RoutedEventArgs e)
{
MediaElement mediaElement = sender as MediaElement;
Debug.WriteLine("Media Element Current State : " +
mediaElement.CurrentState);
}
我尝试了
中提到的多种方法MediaElement.MediaEnded event not firing
不幸的是没有任何作用!