Partie 4 - faire la mâchoire se déplacer dans le temps à la parole
Le son sort par le discours généré nécessaire pour faire bouger les la mâchoire. Autrement dit, elle devait être lip-synced. Un fil de sortie a été connecté à l’ordinateur, et c’était passé creux un circuit amplificateur audio simple, récupéré sur un vieux haut-parleur de l’ordinateur (c’est montré ici à droite de la brioches Chelsea).
Cela a donné une assez grande onde sonore pour détecter de façon fiable (environ +-3v)...
Pour rendre les mâchoires des Twitr_janus déplacer dans le temps à son discours, la sortie audio de la synthèse vocale traitement devait être play-back pour le mécanisme de la mâchoire.
L’idée de base est que le script Arduino à plusieurs reprises vérifie l’audio pour les pics et utilise pour déclencher le moteur marche et en arrêt. Ceci est illustré (assez gros) ci-dessous...
Le signal de sortie audio amplifié portable a été envoyé directement à l’entrée analogique de la carte Arduino. Sur l’Arduino, une esquisse de contrôle vérifié à plusieurs reprises que l’entrée analogique de la tension de crête Arduino convertit un numéro qui il comparé à un seuil prédéfini pic.
Si le signal est passé au-dessus de la crête, l’Arduino a déclenché un circuit de relais de puissance sur un déclencheur de porte de voiture 12V (un moteur linéaire). Si la tension a chuté en dessous de la crête, il réduirait le pouvoir. Cela a donné un mouvement saccadé basé sur les sommets du discours.
Dans le sketch Arduino, code th ressemblait à ceci... } } / / fin contrôle de seuil / /
>>>
Sub analogPeakCheck()
{
Cette fonction est utilisée si vous utilisez une sortie audio brute d’un amplificateur analogique dans la broche analogique 0
valueAnalogIn = analogRead(analogInput) ; C’est de vérifier pour la sortie ci-dessus une tension de seuil de déclenchement du signal de la mâchoire
Si (valueAnalogIn > thresholdAnalogIn)
{
digitalWrite (speechFlagPin, HIGH) ;
digitalWrite (speechFlagPinLED, HIGH) ;
else {}
digitalWrite (speechFlagPin, basse) ;
digitalWrite (speechFlagPinLED, basse) ;
}
<<<
Parfait !
Ici vous pouvez voir l’embouchure articulée de la marionnette, auquel est attachée l’actionneur de porte de voiture...
Pour un regard détaillé sur le fonctionnement du cerveau de traitement, vous pouvez lire les descriptions de la commande par commande sur ce post sur mon blog de faire des trucs bizarres : makingweirdstuff.blogspot.co.uk/2012/08/twitrjanus-is-now-speaking-data-sent.html
Bien que cette description s’applique à une alimentation de RSS Google tableur comme source de données, le même principe s’applique à une chaîne obtenue en appelant l’API Twitter.