Étape 4: Comment Twitr_janus parle à l’aide de synthèse vocale (en traitement)
Parlant des données ouvertes
Un point essentiel, que j’ai essayé de tester avec Twitr_janus était si je pouvais obtenir une marionnette pour parler des données ouvertes sur le web. Initialement, il était prévu ce serait juste tweets du compte sur Twitter, et c’était comment Twitr_janus a obtenu son nom.
Twitr_janus a bien sucessfully parler tweets, dépouillés de l’API Twitter avec traitement.
Faire parler les tweets les Twitr_janus a été fait sans l’aide des API et de l’analyse de la chaîne de l’API, plutôt que de référencer les champs correctement. C’était pour éviter d’avoir à s’inscrire comme développeur de Twitter, etc.. Cette méthode brute a quelques limitations, par exemple tweets avec des caractères de contrôle, confus pour les scripts d’analyse menant à messages tronqués lorsqu’étant décodée.
Le modèle analyse beaucoup mieux fonctionné avec Google spreadsheets, où les données brutes pourraient être ajoutées avec données d’arrêt supplémentaire pour aider le processus d’analyse en utilisant des expressions dans les domaines de la feuille de calcul. Les données de feuille de calcul Google n’étaient pas seulement facile à utiliser pour la parole, il était possible de l’utiliser facilement pour le contrôle du globe oculaire. Parce que la méthode de calcul de Google est le plus facile et le plus polyvalent des deux approches, c’est ce qui est décrit ci-dessous.
Comment les données sont envoyées, codé et décodés, étape par étape
Il est utile de réfléchir à la circulation des données...
Avant de commencer sur ce j’ai trouvé utile pour gribouiller sur un diagramme permettant d’obtenir une sensation pour les blocs de construction nécessaires. La bouche et TTS représentent la fonction de conversion texte-parole.
Ce n’est pas un dessin technique !
Partie 1 - saisie de données dans la feuille de calcul Google
Il y a trois éléments de données nécessaires à envoyer depuis le spreadsheed, soit décodée par la transformation. Il s’agissait de l’eyeballUpDown_stop de deux variables (colonnes F) et eyeballLeftRight_stop (colonne G) qui sont codés de positionnement des données. Par la suite une fois décodée ils servirait à servos en voiture avec un Arduino adhérente à la tête de la marionnette. Le troisième élément de données a été text_stop, qui est ce qui devait être transformé en traitement pour créer le texte à la parole.
Dans la version définitive que deux éléments de données ont été envoyées. Les données de parole et d’une valeur de données unique de globe oculaire. Cela peut entraîner une certaine confusion lors de l’interprétation du code ! (eyeballUpDown a été utilisé, si ne pas renommé),
Une variable de position du globe oculaire unique pourrait être utilisée au lieu de deux, parce que les données sont envoyées simplement représenté un des 25 postes. Même si les deux valeurs de contrôle sont nécessaires de l’Arduino pour positionner les globes oculaires (un pour le servo de haut/bas, pour le servo de gauche/droite) la seule variable envoyée servait à accéder aux paires correspondantes des valeurs stockées dans un tableau à l’intérieur de l’esquisse de l’Arduino.
Dans les cellules, vous pouvez voir que les données a été précédées par le caractère ¬. C’est ajouté à quel que soit les données sont saisies manuellement à l’aide d’une expression de cellules concatonating. Il est utilisé comme un caractère d’arrêt pour délimiter les chaînes de données plus tard. Ces personnages vont apparaître dans le flux RSS et le script de traitement utilise pour dire où un morceau de données s’arrête et la suivante commence. (contrôle-caractère délimitation)
Au départ les données étaient entrées manuellement dans champs dans la feuille de calcul, comme ci-dessous. Ce n'est pas idéal, car vous devez connaître les valeurs de la position exacte d’envoyer, difficiles à mémoriser et facilement gâcher...
Pour éviter d’entrer manuellement les données dans la feuille de calcul, la forme de Google intégrée a été utilisée. Il est disponible pour n’importe quel Google Tableur a été utilisé.
Toutefois, le formulaire standard de Google requise le numérique de globe oculaire positionnement des valeurs à être entré exactement, alors qu’il devait être modifié.
Pour créer une forme plus utile avec un contrôle facile sur des valeurs prédéfinies pour les variables de globe oculaire le basic html du formulaire a été transféré vers une page web (un widget html sur une page NetVibes), où il pourrait être souteneur un peu.
Le formulaire dans Netvibes comme il apparaissait à l’opérateur de la marionnette
Les entrées de texte libre ont été échangées pour entrées bouton radio avec valeurs préréglées et texte correspondant de la position lisible par l’homme.
L’essentiel était de toujours utiliser les noms de domaine Google originaux afin que les options de données seraient tout renvoyées dans la même cellule dans la feuille de calcul lorsque le nouveau formulaire a été soumis
Vous pouvez le voir dans la vue html du formulaire ci-dessous. Toutes les options suivent le même modèle comme ci-dessous
- xxx correspond à une valeur de contrôle qui enverra des données correspondant à la position physique de globe oculaire « positionxxx »
- La valeur de xxx est en fait un numéro de référence à la valeur dans un élément spécifique d’un tableau (25 différentes positions préréglées, donc il y a là un bouton radio nécessaire pour chaque valeur entière comprise entre 1 et 25, utilisé pour une référence les valeurs du tableau entre tableau [1] et tableau [25]
- positionxxx est une simple description anglais pour montrer l’opérateur, pour leur permettre de choisir une position de globe oculaire de cible
- « entry.1.single » est le nom de domaine de Google qui doit rester le même, alors il mettra le xxx de la valeur dans la cellule correcte dans la feuille de calcul. C’est la même pour chaque case d’option, parce que les différentes valeurs sont effectivement choix des valeurs à mettre dans ce un domaine
Par le remaniement de la forme, une interface plus visuelle a été créée, donc c’était plus facile de voir où les globes oculaires passeraient, tout en permettant toujours la parole texte à entrer.
L’autre ligne importante qui provient également de l’orginal Google formulaire html est celui-ci :
C’est la forme soumettre l’action et doit rester la même.
Cette technique de proxénétisme un simple formulaire de Google présente certains avantages :
- Il permet d’autres possibilités comme l’ajout de curseurs continus à l’aide de la fonctionnalité HTML 5 < input type = « plage » / >
- vous pouvez créer une méthode d’injection de données dans la feuille de calcul sans aucune forme de clé API. Vous avez juste besoin de savoir comment faire pour régler les valeurs et les contrôles d’un formulaire html.
- vous pouvez saisir les données dans un champ, mais sortir les données d’un autre champ qui utilise les données d’entrée, mais modifiées de quelque façon à étendre sa polyvalence, comme l’exige
L’inconvénient est
- sur présentation du formulaire, Google vous ramènera à la forme originale pas votre formulaire souteneur, donc vous devez faire un rafraîchissement de page après chaque soumission de recharger vous forme
Le formulaire dans Netvibes - le code source html (image ci-dessous)
Partie 2 - sortir les données à l’autre bout du web
La méthode de saisie de données décrite ci-dessus représente le premier maillon de la plutôt ordures données organigramme illustré en haut de la page (bien qu’il montre Twitter comme source de données, pas de Google). L’étape de saisie de données se produit sur un dispositif de commande, utilisé par l’opérateur à distance de la tête de marionnette de Twitr_janus. C’est, en effet, l’interface de commande principale.
L’autre extrémité de la toile, chef des Twitr_janus a été fixé à un autre ordinateur exécutant ses croquis de cerveau de traitement. C’était du scrutin une de la feuille de calcul publiée de flux de données RSS. Pour obtenir ce flux, la feuille de calcul doit être publiées. Lorsque vous publiez une feuille de calcul Google, il est donné un flux RSS public, avec une URL dédiée. C’est utilisée plus tard dans le script de traitement pour analyser les données. Regards pour un Google RSS Url ressemblera à ceci...
Et la sortie ressemble à ceci...
Dans la sortie de flux RSS, l’arrêt caractère ¬ est bien visible (second de la dernière ligne, avant les noms des champs: "eyeballupdownstop", "eyeballleftrightstop" et « textstop » et les valeurs correspondantes de 13, 22 et "Bonjour mon nom est... »
L’esquisse de traitement qui est le cerveau des Twitr_janus est du scrutin cette URL à plusieurs reprises et utilise le caractère ¬ à dépouiller les données...
Voici le code qui est l’analyse de la feuille de calcul google pour extraire les données de contrôle d’alimentation et en le passant dans un tableau. Il est à la recherche du caractère ¬ tout d’abord, puis le < caractère String [] texty3 = split (texty2 [4], « < ») ; se débarrasser de fuite texte après <
>>>
String [] texty = loadStrings(gssApiString) ;
String [] texty2 = split (texty [0], « ¬ ») ; tirant de données avec le caractère d’arrêt
gssText = texty3 [0] ;
gssTextLength = gssText.length() ;
<<<
C’est ensuite vérifié traitement contre les dernières données reçues. Si elle est différente, une nouvelle instruction a été reçue.