WP 8.1 Cortana音声コマンドVCDファイル設計
7500 ワード
Windows Phone 8.1のCortanaは、音声方式でアプリケーションを開き、設定し、ページジャンプ、タスクを実行することができます。
まずVCDファイルを作成します。
Commund 1:「速達スキャンバーコード」を識別してスキャンページにジャンプします。
Command 2: 「宅配便の問い合わせ」を識別してホームページに移動し、識別される宅配便の名前。 {速達の名前}申通、丸通、順豊の中の一つです。
Command 3:「宅急便[照会]{宅急便名}[運送状][運送状番号]{自分で言ったら、ここは運送状番号です}」を識別します。 []あってもなくてもいいです
この三つの命令はすべてを表すことができるでしょう。
VCDファイルが作成されたら、VCDファイルのホームページを初期化します。
アプリ.cs中
まずVCDファイルを作成します。
<?xml version="1.0" encoding="utf-8" ?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1">
<!--1.0 , PhraseTopic , ; 1.1 -->
<CommandSet xml:lang="zh-cn" Name="CommanSet1"> <!-- -->
<CommandPrefix> </CommandPrefix> <!-- , ( )-->
<Example> </Example>
<!-- Cortana -->
<!-- -->
<!-- -->
<Command Name="Command1">
<Example> </Example>
<ListenFor> </ListenFor>
<Feedback> </Feedback>
<Navigate/>
</Command>
<Command Name="Command2">
<Example> + { }</Example>
<ListenFor> {ExpressName}</ListenFor>
<Feedback> {ExpressName}</Feedback>
<Navigate/>
</Command>
<Command Name="Command3">
<Example> + { } + { }</Example>
<ListenFor>[ ] {ExpressName} [ ][ ] {order}</ListenFor> <!-- [] -->
<Feedback> {ExpressName} :{order}</Feedback>
<Navigate/>
</Command>
<!--0 -->
<PhraseList Label="ExpressName"> <!-- {} ListenFor、Feedback -->
<Item> </Item>
<Item> </Item>
<Item> </Item>
</PhraseList>
<PhraseTopic Label="order" Scenario="Short Message"> <!-- -->
<Subject>Order</Subject>
</PhraseTopic>
</CommandSet>
</VoiceCommands>
上のVCDファイルの中の3つの音声コマンド機能:Commund 1:「速達スキャンバーコード」を識別してスキャンページにジャンプします。
Command 2: 「宅配便の問い合わせ」を識別してホームページに移動し、識別される宅配便の名前。 {速達の名前}申通、丸通、順豊の中の一つです。
Command 3:「宅急便[照会]{宅急便名}[運送状][運送状番号]{自分で言ったら、ここは運送状番号です}」を識別します。 []あってもなくてもいいです
この三つの命令はすべてを表すことができるでしょう。
VCDファイルが作成されたら、VCDファイルのホームページを初期化します。
using Windows.Media.SpeechRecognition;
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (VoiceCommandManager.InstalledCommandSets.Count == 0)
{
StorageFile file = await Windows.ApplicationModel.Package.Current.
InstalledLocation.GetFileAsync("VoiceCommand.xml");
await VoiceCommandManager.InstallCommandSetsFromStorageFileAsync(file);
}
}
Cortanaから音声コマンドを実行します。アプリ.cs中
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.VoiceCommand) //
{
VoiceCommandActivatedEventArgs voiceCommandArgs = args as VoiceCommandActivatedEventArgs;
Frame rootFrame = new Frame();
string result = voiceCommandArgs.Result.Text; //
if (result.Contains(" "))
rootFrame.Navigate(typeof(MainPage), voiceCommandArgs);// ,
else if (result.Contains(" "))
rootFrame.Navigate(typeof(BarCodeScanPage));
else if (result.Contains(" "))
rootFrame.Navigate(typeof(MainPage), voiceCommandArgs);
Window.Current.Content = rootFrame;
Window.Current.Activate();
}
}
これで完成しました。娜さんは本当に使いやすいです。これからも音声コマンドをサポートするところが多いでしょう。