Universal Windows App Development with Cortana and the Speech SDK 4

4 Speech Recognition in Apps

4.1 Understanding In-App Speech Recognition

4.1.1 Speech Privacy Statement

User must accept the Privacy Statement

catch (Exception exception)
{
	const uint HResultPrivacyStatementDeclined=0x80045509;
	
	if ((uint)exception.HResult == HResultPrivacyStatementDeclined)
{
	var messageDialog=new Windows.UI.Popups.MessageDialog("You must accept the speech privacy policy to continue.", "Speecg Exception");
	messageDialog.ShowAsync().GetResults();
	this.recoEnabled=false;
	this.btnContinousRecognition.Content= "Start speech recognition";
}
else
{
	txtResult.Text=exception.Message;
}
}

4.1.2 Speech Recognition Constraints


Pre-defined grammars

Custom Grammars (can work offline)
PhraseList

4.1.3 In Application Basic Speech Recognition

//windows phone store app
private async Task<SpeechRecognitionResult> RecognizeSpeech()
{
	SpeechRecognizer recognizer=new SpeechRecognizer();
	
	// one of three constraints types available
	SpeechRecognitionTopicConstraint topicConstraint =new SpeechRecognitionTopicConstraint(SpeechRecognitionScenario.WebSearch,"MSDN");
	recongnizer.Constraints.Add(topicConstraint);
	await recognizer.ComplieConstarintAsync();// required

	//put up UI and recognize user's utterance
	SpeechRecognitionResult result= await recognizer.RecognizeWithUIAsync();
	return result;
}
//calling code uses result.RecognitionResult.Text or result.RecognitionResult.SemanticInterpretation

create speech recognizer
create the constraint (type, constraint name)
add it to the recognizer
compile the constraint

private async void RecognizeWithDictationGrammar_Click(object sender, RoutedEventArgs e)
		{
			// Create an instance of SpeechRecognizer.
			var speechRecognizer = new Windows.Media.SpeechRecognition.SpeechRecognizer();

			// Compile the dictation grammar that is loaded by default.
			await speechRecognizer.CompileConstraintsAsync();

			this.heardYouSayTextBlock.Visibility = this.resultTextBlock.Visibility = Visibility.Collapsed;

			// Start recognition.
			try
			{
				Windows.Media.SpeechRecognition.SpeechRecognitionResult speechRecognitionResult = await speechRecognizer.RecognizeWithUIAsync();
				// If successful, display the recognition result.
				if (speechRecognitionResult.Status == Windows.Media.SpeechRecognition.SpeechRecognitionResultStatus.Success)
				{
					this.heardYouSayTextBlock.Visibility = this.resultTextBlock.Visibility = Visibility.Visible;
					this.resultTextBlock.Text = speechRecognitionResult.Text;
				}
			}
			catch (Exception exception)
			{
				if ((uint)exception.HResult == App.HResultPrivacyStatementDeclined)
				{
					this.resultTextBlock.Visibility = Visibility.Visible;
					this.resultTextBlock.Text = "The privacy statement was declined.";
				}
				else
				{
					var messageDialog = new Windows.UI.Popups.MessageDialog(exception.Message, "Exception");
					messageDialog.ShowAsync().GetResults();
				}
			}
		}

		private async void Footer_Click(object sender, RoutedEventArgs e)
		{
			await Windows.System.Launcher.LaunchUriAsync(new Uri(((HyperlinkButton)sender).Tag.ToString()));
		}
	}
}


4.2 Programmatic List Grammars

Also as phrase list grammars


Deal with recognition confidence

4.3 Custom SRGS Grammars

SRGS (Speech Recognition Grammar Specification)
W3C stanrdar that allows you to create grammars for speech recognition scenarios ranging from basic to complex
- http://www.w3.org/TR/speech-grammar
Ideal for advanced speech recognition scenarios

Allow for complex combos across several rules 


4.4 Optimizing Speech Recognition

Using multiple grammars
Tuning Timeouts
Managing Audio Input Issues :   RecognitionQualityDegrade

4.5 Speech Recognition and Globalization
4.6 Speech Recognition Comparison Across Platforms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值