Reconnaissance vocale personnalisée dans l’application Roku à l’aide de Google Speech dans la bibliothèque de texte

Roku fournit une bibliothèque qui prend en charge les commandes vocales de base, telles que «Play», «Pause», «Next» et «Fast Forward», Roku fournit également un clavier intégré à la recherche vocale. Cependant, nous ne pouvons pas intégrer les commandes vocales personnalisées directement à partir de la bibliothèque vocale de Roku. Grâce à cet article, nous couvrirons comment intégrer les commandes vocales personnalisées dans un canal Roku en utilisant le composant «Romicrophone» et une bibliothèque de reconnaissance vocale tierce, comme l’API Google Speech-to-Text.
Pour utiliser le service de reconnaissance vocale, l’appareil Roku doit être exécuté sur OS 7.6 ou version ultérieure.
- Connaissance du développement d’applications Roku à l’aide de BrightScript / SceneGraph.
- Compte Google Cloud avec facturation activé.
- Appareil Roku avec mode développeur activé et avait la version 7.6 du système d’exploitation ou version ultérieure.
L’intégration de la commande vocale personnalisée sera effectuée en 2 étapes principales.
- Configuration de l’API Speech-the Text Google Cloud.
- Configuration du code de canal Roku.
Configuration de l’API Google Speech-to-Text
- Premièrement, nous devons créer un Compte de cloud Google. Connectez-vous à la console Google Cloud et activez la facturation.
- Créez un nouveau projet, donnez un nom selon votre préférence.
- Ouvrez l’API «API et SERVICES» et sélectionnez l’API Speech-to-Text ».
- Cliquez sur le bouton «Activer» pour activer l’API Speech-to-Text.
- Créer un Clé API.

Console Cloud Google

Discours de cloud au texte
Configuration du code
- Créez un composant personnalisé (qui est responsable de l’écoute et du retour du texte) nommé comme VoiceRecognnizer.xml
- Créez un objet «Romicrophone» pour accéder au micro de Roku Remote.
- Pour utiliser le microphone, nous devons d’abord régler le port à l’aide du SetMessageport(port) Fonction.
- Après cela, nous pouvons initier l’enregistrement à l’aide du microphone de Roku en utilisant le Record de départ() fonction.
- Maintenant, nous devons créer l’objet «RobyTearray» pour stocker les données audio dans les octets.
- Capturez les événements de microphone pour obtenir les données audio.
while true micEvent = wait(0, port) if micEvent.IsRecordingInfo() 'when startRecording() function calls this event loop triggers info = micEvent.GetInfo() audioBytes.append(info.sample_data) else exit while end if end while
- Maintenant, nous avons les données audio dans le bytearray, nous devons convertir ce bytearray en une base64string.
- Créez le corps de demande et les en-têtes pour appeler l’API.
- têtes
- corps
{ "audio": { "content": audioData }, "config": { "enableAutomaticPunctuation": true, "encoding": "LINEAR16", "languageCode": "en-US", "sampleRateHertz": 16000 } }
- Créez maintenant un objet RourlTransfer et envoyez ces données à Google Speech à la bibliothèque de texte via ce qui est ci-dessous API.
- Créez une fonction d’observateur qui observe la réponse de l’appel API. Dans notre cas, la fonction d’observateur est mélanger().
- M.SspeechText est le texte de cette commande audio que nous donnons en utilisant le microphone du Roku.
- Maintenant, via ce m.speechText, nous pouvons effectuer les actions de notre application. Par exemple, si l’utilisateur disait «achetez cette commande» et que nous gérons la vérification de ce texte, nous pouvons effectuer l’événement Action onClick (Buttonsered) du bouton «Acheter maintenant».
La fonction de reconnaissance vocale personnalisée permet de faciliter l’expérience utilisateur, l’utilisateur peut effectuer plusieurs actions via sa voix, ces actions aident à faire de la navigation mains libres, de l’accessibilité et bien d’autres. Bien que Roku ne prenne pas en charge les commandes vocales personnalisées via sa bibliothèque vocale au-delà des commandes vocales de base, cette approche hybride combinant l’entrée de microphone de Roku avec des ponts de transcription basés sur le cloud qui écartent efficacement.
Source link