您的位置:首页 > 移动开发

Universal Windows App Development with Cortana and the Speech SDK 4

2015-02-26 10:43 896 查看

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Speech
相关文章推荐