1. 程式人生 > >微軟小娜開發教程

微軟小娜開發教程

利用語音指令除了能開啟系統應用之外,還能開啟前臺應用並在應用內指定執行的操作或命令。

1、定義語音指令檔案

新建一個空的UWP應用,往工程中新增一個空的XML檔案。
語音指令特指在VCD(voice command definition)檔案中按照一定格式定義的詞語組合。
舉個栗子,這個VCD檔案是一個名叫“Adventure Works”的工程下的一個XML檔案:

<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1"
>
<CommandSet xml:lang="en-us" Name="AdventureWorksCommandSet_en-us"> <CommandPrefix> Adventure Works, </CommandPrefix> <Example> 顯示倫敦之行 </Example> <Command Name="showTripToDestination"> <Example> 顯示倫敦之行 </Example> <ListenFor
>
顯示去 {destination} 的旅行</ListenFor> <Feedback> 正在顯示去 {destination} 的旅行</Feedback> <Navigate/> </Command> <PhraseList Label="destination"> <Item> 倫敦</Item> <Item> 紐約</Item> <Item> 北京</Item> </PhraseList
>
<PhraseTopic Label="newDestination" Scenario="Search"> <Subject>City/State</Subject> </PhraseTopic> </CommandSet> <!-- Other CommandSets for other languages --> </VoiceCommands>

這個XML檔案裡就定義了一個語音命令”Adventure Works,顯示去倫敦的旅行“。這裡

的語音指令很靈活,可以在PhraseList 標籤中動態新增。
VCD檔案動態新增指令指南

2、安裝VCD命令

當應用啟用時,需要在OnLaunched處理程式中呼叫InstallCommandDefinitionsFromStorageFileAsync以註冊系統應該偵聽的命令。
在App.xaml.cs檔案下的Onlaunched函式中新增如下程式碼段

.......
Window.Current.Activate();
            try
            {
                var storageFile = await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(
                    new Uri("ms-appx:///VoiceCommands.xml"));
                await
                    Windows.ApplicationModel.VoiceCommands.VoiceCommandDefinitionManager.
                    InstallCommandDefinitionsFromStorageFileAsync(storageFile);
            }
            catch (Exception)
            {

                throw;
            }

處理啟用並執行語音命令

安裝語音指令集後,指定應用如何響應後續指定操作或指令動作。例如,你的應用可能導航到特定頁的內容、顯示地圖或說出確認語句等。
執行語音指令的操作,是最終最終願景。需要在重寫OnActivated()函式裡幹三件事:
1. 確認你的應用已經通過語音命令啟用。
2. 確認命令名稱和說出的內容。
3. 執行動作,通常是導航到相關頁面。

這裡寫程式碼片
protected override void OnActivated(IActivatedEventArgs e)
{
  // Was the app activated by a voice command?
  if (e.Kind != Windows.ApplicationModel.Activation.ActivationKind.VoiceCommand)
  {
    return;
  }

  var commandArgs = e as Windows.ApplicationModel.Activation.VoiceCommandActivatedEventArgs;

  Windows.ApplicationModel.VoiceCommands.VoiceCommand.SpeechRecognitionResult speechRecognitionResult = 
    commandArgs.Result;

  // Get the name of the voice command and the text spoken
  string voiceCommandName = speechRecognitionResult.RulePath[0];
  string textSpoken = speechRecognitionResult.Text;
  // The commandMode is either "voice" or "text", and it indicates how the voice command was entered by the user.
  // Apps should respect "text" mode by providing feedback in a silent form.
  string commandMode = this.SemanticInterpretation("commandMode", speechRecognitionResult);

  switch (voiceCommandName)
  {
    case "showTripToDestination":
    // Access the value of the {destination} phrase in the voice command
    string destination = speechRecognitionResult.SemanticInterpretation.Properties["destination"][0];
    // Create a navigation parameter string to pass to the page
    navigationParameterString = string.Format("{0}|{1}|{2}|{3}", 
                    voiceCommandName, commandMode, textSpoken, destination);
    // Set the page where to navigate for this voice command
    navigateToPageType = typeof(TripPage);
    break;

    default:
      // There is no match for the voice command name. Navigate to MainPage
      navigateToPageType = typeof(MainPage);
      break;
  }
  if (this.rootFrame == null)
  {
    // App needs to create a new Frame, not shown
  }

  if (!this.rootFrame.Navigate(navigateToPageType, navigationParameterString))
    {
    throw new Exception("Failed to create voice command page");
    }
}

相關推薦

微軟開發教程

利用語音指令除了能開啟系統應用之外,還能開啟前臺應用並在應用內指定執行的操作或命令。 1、定義語音指令檔案 新建一個空的UWP應用,往工程中新增一個空的XML檔案。 語音指令特指在VCD(voice command definition)檔案中

微軟開發系列教程

1. 認識小娜 自win10釋出後,微軟小娜已成為一大亮點,吸引了眾多使用者、開發者去使用。定位於微軟的第一款全球個人智慧服務助手,小娜確實以高情商、高智商的表現受到好評。 小娜成功的背後離不開微軟強大的技術支援,採用機器學習、模式識別、自然語言理解、深

微信程序開發教程目錄

請求 模板消息 小程序開發 沒有 註冊 系列 pick 記錄 logs 本系列教程是自己在工作中使用到而記錄的,沒有順序之分 如有錯誤之處,請給與指正,也不希望誤導了別人 微信小程序開發教程目錄 微信小程序之註冊和入門 微信小程序之HTTPS請求 微信小程序開發之

微信程序開發教程(八)視圖層——.wxml詳解

span hid 處理 路徑 strong 一般來說 emp 條件 頁面數據   框架的視圖層由WXMKL(WeiXin Markup language)與WXSS(WeiXin Style Sheet)編寫,由組件進行展示。   對於微信小程序而言,視圖層就是所有.wxm

微信程序開發教程(九)視圖層——.wxss詳解

hone mnt 而且 padding 移動 圖層 組成 特性 -1   WXSS是一套樣式語言,用於描述WXML的組件樣式。   官方文檔表示,WXSS的選擇器目前支持(“.class”、“#id”、“elemnt”、“element,element”、“::after”

微軟人工智能——微軟

利用 tps 框架 com abi anywhere 個性化 provides 到你 Cortana,直譯”科塔娜“,中文名微軟小娜,或簡稱小娜 Learn how Cortana is helping you stay on top of it all so you ca

【原創】【程序開發教程】2、程序域名配置之申請支持SSL(https)

證書頒發 分享圖片 tro get 操作方法 alt 賽門鐵克 似的 http 要把一個網站對接進小程序,一、網站的域名必須通過備案(ICP備案)。在買域名的時候,各個域名服務商都有提供相應的備案平臺,可以方便的提交備案。工信部官網:http://www.miitbeian

【helloworld】-微信程序開發教程-入門篇【3】

window 學習 視圖 小程序教程 href htm mtv 傳送門 lar 1. 開篇導言 本節目標:通過上一節的講解,相信大家對小程序框架MINA有了初步了解。接下來將會對其進行深入介紹。 目標用戶:無編程經驗,但對微信小程序感興趣的同學。 學習目標:了解M

【helloworld】-微信程序開發教程-入門篇【4】

頁面 lob 分享圖片 簡化 指定 ram 圖層 備註 family 1. 開篇導言 本節目標:通過上一節的講解,相信大家對小程序框架MINA的目錄結構和配置有了一定的了解。接下來將會講解視圖層,邏輯層及其之間的交互。 目標用戶:無編程經驗,但對微信小程序感興趣的

【helloworld】-微信程序開發教程-入門篇【1】

基本 微信小程序開發 AI 彈出對話框 頁面 com 基本使用 alt 案例演示 1. 開篇導言 本節目標:旨在演示如何用開發者工具構建並運行簡單的 helloworld 應用。 目標用戶:無編程經驗,但對微信小程序感興趣的同學。 學習目標:開發者工具的基本使用流程

【helloworld】-微信程序開發教程-入門篇【5】

總結 mta top eight page ota 技術分享 小程序 attach 1. 開篇導言 本節目標:通過之前的講解,相信大家對於微信小程序本身有了一定的認識。本篇將專註於講解IDE的調試功能。 目標用戶:無編程經驗,但對微信小程序感興趣的同學。 學習目標

微信程式開發教程--從零開始

從零開始小程式 今天一不小心拿到了小程式的內測資格,為了不辜負微信團隊的信任,我決定十一奮鬥一把!不過話說我可是一個Android工程師啊!所以就讓我們從零開始! 所以本文非常適合非前端工程師學習!哈哈!都說小程式出來前端會搶移動端飯碗,但是據我所知現在好多學習的都是移動開

微信程式開發教程 #043

本文介紹瞭如何在微信小程式開發中使用 npm 中包的功能,大大提高微信小程式的開發效率,同時也是微信小程式系列教程的視訊版更新。 微信小程式在釋出之初沒有對 npm 的支援功能,這也是目前很多前端開發人員在熟悉了 npm 生態環境後,對微信小程式詬病的地方。 微信小程式在 2.2.1 版本後增加了對 npm

微信程式開發教程-微信程式入門

轉自http://blog.jobbole.com/106049/ 微信應用號(小程式,「應用號」的新稱呼)終於來了! 目前還處於內測階段,微信只邀請了部分企業參與封測。想必大家都關心「小程式」的最終形態到底是什麼樣子?怎樣將一個「服務號」改造成為「小程式」?

微信程式開發教程集合

微信小程式開發教程集合?不少朋友都知道現在是小程式發展如火如荼的時候,甚至不少朋友都準備進入小程式開發這個領域。但是網際網路上各種資訊浩如煙海,如何在這些繁雜的資訊中找到自己所需要的,這對於不少人來說是個問題,來現在多享科技為你詳細講述一下微信小程式開發教程,希望可以幫助小程式開發者節約一些時間。 微信小程

微信程序開發教程集合

develop http MinIP 裁判 希望 介紹 目錄配置 互聯 不必要 微信小程序開發教程集合?不少朋友都知道現在是小程序發展如火如荼的時候,甚至不少朋友都準備進入小程序開發這個領域。但是互聯網上各種信息浩如煙海,如何在這些繁雜的信息中找到自己所需要的,這對於不少人

微信程式開發教程-從零開始

從零開始小程式 今天一不小心拿到了小程式的內測資格,為了不辜負微信團隊的信任,我決定十一奮鬥一把!不過話說我可是一個Android工程師啊!所以就讓我們從零開始! 所以本文非常適合非前端工程師學習!哈哈!都說小程式出來前端會搶移動端飯碗,但是據我所知現在好多

微信程式開發教程(基礎篇)6-logs頁面解析

上一篇教程中對index頁面進行了解析,這一篇來解析下logs頁面 老規矩先上圖 該頁面包含返回按鈕(用於返回index頁面),頁面title和程式啟動日誌列表。 和index頁面相比,logs頁面多了一個logs.json檔案,來配置頁面title的

window10 微軟搜尋不到內容

  Win10自帶的語音助手Cortana小娜可以幫我們省下很多檔案或功能操作時間,小娜經常被用於搜尋本地檔案或應用程式等,有使用者表示使用小娜的時間長了就會遇到無法搜尋本地應用程式的問題。閱讀下文了解Win10系統小娜搜尋不到應用程式的處

微信程式開發教程(破解版IDE 無內測資格也可使用)

破解版IDE下載地址,以及使用說明: 這裡由於csdn有上傳大小限制,所以只能做兩次上傳了。要放在一起看哦。 安裝步驟 一個步驟都不能錯哦 1、安裝0.7 — 掃碼登陸 — 關閉0.7 2、安裝0.9 ——不要啟動程式——替換3個檔案檔案在weapp-ide-crac