2016-03-12 3 views
2

Возможно ли использовать функции голосовых команд Cortana в общем веб-приложении на основе javascript, которое может работать в любом веб-браузере/платформе? (например, через голосовой ввод html5 и какой-либо веб-сервис), или веб-страница должна быть загружена на компьютер с Windows с установленным клиентом Cortana?Интеграция голосовых команд Cortana в веб-приложении без зависимостей Windows

я наткнулся на этот пример, но это, кажется, ожидать Кортана установленного на устройстве под управлением страницы: https://gist.github.com/seksenov/17032e9a6eb9c17f88b5

ответ

0

Это базовый пример, который вы можете редактировать код для запуска вашего приложения: https://gist.github.com/seksenov/17032e9a6eb9c17f88b5

cortana.html

<!DOCTYPE html> 
<html> 
<head> 
    <title>Cortana Example</title> 
    <!--Cortana meta tag pointing to VCD file on the server--> 
    <meta name="msapplication-cortanavcd" content="/vcd.xml"/> 
</head> 
<body> 

</body> 
</html> 

cortana.js

if (typeof Windows !== 'undefined' && 
    typeof Windows.UI !== 'undefined' && 
    typeof Windows.ApplicationModel !== 'undefined') 
    { 
    // Subscribe to the Windows Activation Event 
    Windows.UI.WebUI.WebUIApplication.addEventListener("activated", function (args) { 
    var activation = Windows.ApplicationModel.Activation; 
    // Check to see if the app was activated by a voice command 
    if (args.kind === activation.ActivationKind.voiceCommand) { 
     // Get the speech reco 
     var speechRecognitionResult = args.result; 
     var textSpoken = speechRecognitionResult.text; 
     // Determine the command type {search} defined in vcd 
     if (speechRecognitionResult.rulePath[0] === "search") { 
     // Determine the stream name specified 
     if (textSpoken.includes('foo') || textSpoken.includes('Foo')) { 
      console.log("The user is searching for foo"); 
     } 
     else if (textSpoken.includes('bar') || textSpoken.includes('Bar')) { 
      console.log("The user is searching for a bar"); 
     } 
     else { 
      console.log("Invalid search term specified by user"); 
     } 
     } 
     else { 
     console.log("No valid command specified"); 
     } 
    } 
    }); 
} else { 
    console.log("Windows namespace is unavaiable"); 
} 

vcd.xml

<?xml version="1.0" encoding="utf-8"?> 
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.2"> 
    <CommandSet xml:lang="en-us" Name="RJS"> 
    <CommandPrefix>MyApp</CommandPrefix> 
    <Example>MyApp search for foo</Example> 
    <Command Name="Search"> 
     <Example>search {message} using myapp</Example> 
     <ListenFor RequireAppName="BeforeOrAfterPhrase">Search for {searchTerm}</ListenFor> 
     <Feedback>Searching for {searchTerm} with MyApp</Feedback> 
     <Navigate Target="/search.htm"/> 
    </Command> 
    <PhraseTopic Label="searchTerm" Scenario="Dictation"></PhraseTopic> 
    </CommandSet> 
</VoiceCommands> 
+0

добавьте некоторое содержимое по ссылке. – Robert

+0

@Robert Почему вы хотите, чтобы я добавил содержание ссылки ?! –

+0

Например, если связь будет нарушена в будущем, ваш ответ в ее нынешнем виде будет бесполезным. Если вы добавите соответствующий контент из ссылки в свой ответ, это предотвратит это. – Robert