2025-11-28 00:35:46 +09:00

236 lines
9.3 KiB
XML

<Window x:Class="Microsoft.Samples.Speech.Recognition.SpeechRecognition.SpeechRecognitionWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SpeechRecognition" Height="800" Width="700">
<!-- Some nested grids to allow a splitter enabled layout-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="3*" MinHeight="300"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="2*" MinHeight="150"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" MinWidth="300"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="2*" MinWidth="150"/>
</Grid.ColumnDefinitions>
<TabControl Margin="5" Grid.Row="0" Grid.Column="0">
<!-- Info Tab -->
<TabItem Header="Info">
<Frame Source="Info.xaml"/>
</TabItem>
<!-- SpeechRecognizer Tab -->
<TabItem Header="SpeechRecognizer">
<StackPanel>
<TextBlock TextWrapping="Wrap" Margin="10">
Click the "Create" button to create a SpeechRecognizer object.
Don't forget to "Dispose" when you're done.
</TextBlock>
<StackPanel Orientation="Horizontal" Margin="10">
<Button Name="_buttonCreateSR"
Click="_buttonCreateSR_Click"
Margin="0,0,10,0">
Create
</Button>
<Button Name="_buttonDisposeSR"
Click="_buttonDispose_Click">
Dispose
</Button>
<Label Name="_labelEngineStateLabel" Margin="20,0,0,0">
Engine State:
</Label>
<Label Name="_labelEngineState">
N/A
</Label>
</StackPanel>
<GroupBox Name="_groupBoxRecognitionSR" Header="Recognition"
Margin="5">
<StackPanel Margin="5">
<StackPanel Orientation="Horizontal">
<Button Name="_buttonEnable"
Click="_buttonEnable_Click">
Enable
</Button>
<Button Name="_buttonDisable"
Click="_buttonDisable_Click">
Disable
</Button>
</StackPanel>
<DockPanel Margin="0,10,0,0">
<Button Name="_buttonEmulateSR" DockPanel.Dock="Right"
Click="_buttonEmulate_Click">
Emulate
</Button>
<TextBox Name="_textBoxEmulateSR"
KeyDown="_textBoxEmulate_KeyDown"/>
</DockPanel>
</StackPanel>
</GroupBox>
</StackPanel>
</TabItem>
<!-- SpeechRecognitionEngine Tab -->
<TabItem Header="SpeechRecognitionEngine">
<StackPanel>
<TextBlock TextWrapping="Wrap" Margin="10">
First select the engine that you want to use, then click
"Create" to create a SpeechRecognitionEngine object.
Don't forget to "Dispose" when you're done.
</TextBlock>
<ComboBox Name="_comboBoxInstalledRecognizers" Margin="10"/>
<StackPanel Orientation="Horizontal" Margin="10,0,10,10">
<Button Name="_buttonCreateSRE"
Click="_buttonCreateSRE_Click"
Margin="0,0,10,0">
Create
</Button>
<Button Name="_buttonDisposeSRE"
Click="_buttonDispose_Click">
Dispose
</Button>
</StackPanel>
<GroupBox Name="_groupBoxAudioInput" Header="Audio Input"
Margin="5">
<StackPanel Margin="5">
<RadioButton Name="_radioButtonDefaultAudioDevice"
Checked="_radioButtonDefaultAudioDevice_Checked">
Default Audio Device
</RadioButton>
<RadioButton Name="_radioButtonWaveFile"
Checked="_radioButtonWaveFile_Checked">
Wave File
</RadioButton>
<DockPanel>
<Button Name="_buttonWaveFile" DockPanel.Dock="Right"
Click="_buttonWaveFile_Click">
...
</Button>
<TextBox Name="_textBoxWaveFile" IsReadOnly="True"/>
</DockPanel>
</StackPanel>
</GroupBox>
<GroupBox Name="_groupBoxRecognitionSRE" Header="Recognition"
Margin="5">
<StackPanel Margin="5">
<RadioButton Name="_radioButtonAsynchronous"
Checked="_radioButtonAsynchronous_Checked">
Asynchronous
</RadioButton>
<RadioButton Name="_radioButtonSynchronous"
Checked="_radioButtonSynchronous_Checked">
Synchronous
</RadioButton>
<StackPanel Orientation="Horizontal">
<Button Name="_buttonStart"
Click="_buttonStart_Click">
Start
</Button>
<Button Name="_buttonStop"
Click="_buttonStop_Click">
Stop
</Button>
<Button Name="_buttonCancel"
Click="_buttonCancel_Click">
Cancel
</Button>
</StackPanel>
<DockPanel Margin="0,10,0,0">
<Button Name="_buttonEmulateSRE" DockPanel.Dock="Right"
Click="_buttonEmulate_Click">
Emulate
</Button>
<TextBox Name="_textBoxEmulateSRE"
KeyDown="_textBoxEmulate_KeyDown"/>
</DockPanel>
</StackPanel>
</GroupBox>
</StackPanel>
</TabItem>
</TabControl>
<GridSplitter HorizontalAlignment="Center" VerticalAlignment="Stretch"
Width="5" Grid.Row="0" Grid.Column="1"/>
<!-- Grammars Group Box -->
<GroupBox Header="Grammars" Margin="5"
Grid.Row="0" Grid.Column="2">
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom">
<Button Name="_buttonAddSRGS"
Click="_buttonAddSRGS_Click">
Add SRGS Grammar
</Button>
<Button Name="_buttonRemoveSRGS" IsEnabled="False"
Click="_buttonRemoveSRGS_Click">
Remove
</Button>
</StackPanel>
<TreeView Name="_treeViewGrammars"/>
</DockPanel>
</GroupBox>
</Grid>
<GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Center"
Height="5" Grid.Row="1" Grid.Column="0"/>
<!-- Controls for displaying the status -->
<Grid Margin="5" Grid.Row="2" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="2*" MinHeight="50"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*" MinHeight="50"/>
</Grid.RowDefinitions>
<GroupBox Header="Status"
Grid.Row="0" Grid.Column="0">
<RichTextBox Name="_richTextBoxStatus" IsReadOnly="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto">
<FlowDocument Name="_flowDocumentStatus"/>
</RichTextBox>
</GroupBox>
<GridSplitter HorizontalAlignment="Stretch" VerticalAlignment="Center"
Height="5" Grid.Row="1" Grid.Column="0"/>
<Grid Grid.Row="2" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" MinWidth="200"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*" MinWidth="100"/>
</Grid.ColumnDefinitions>
<GroupBox Header="Recognition Result"
Grid.Row="0" Grid.Column="0">
<RichTextBox Name="_richTextBoxResult" IsReadOnly="True"
VerticalScrollBarVisibility="Auto">
<FlowDocument Name="_flowDocumentResult"/>
</RichTextBox>
</GroupBox>
<GridSplitter HorizontalAlignment="Center" VerticalAlignment="Stretch"
Width="5" Grid.Row="0" Grid.Column="1"/>
<GroupBox Header="Semantics"
Grid.Row="0" Grid.Column="2">
<TreeView Name="_treeViewSemantics"/>
</GroupBox>
</Grid>
</Grid>
<DockPanel Margin="5" LastChildFill="False"
Grid.Row="3" Grid.Column="0">
<Button Name="_buttonRecognizedAudio"
Click="_buttonRecognizedAudio_Click"
DockPanel.Dock="Left">
Listen to the Recognized Audio
</Button>
<ProgressBar Name="_progressBarAudioLevel" Width="200"
DockPanel.Dock="Right"/>
<Label DockPanel.Dock="Right">Audio Input Level:</Label>
</DockPanel>
</Grid>
</Window>