To move a movement robot syncronized to music or speech, it is required to add the movement in some way according to the tone. In this project this happens by moving a joystick by hand synchronous to the sound. At the same time the movements will be output to the servos to be able to check the results on the fly. The number of recording channels is limited to a maximum of 16 according to the project. In case of the puppet Mr. Bechele, the number of Servos in use is only 4. This limitation is just coincidencial and not a limit for other projects. One servo for the eye movement up-down, one for eye movement left -right, one servo for the lid movement and one for the mouth movement. My new puppet (almost finished) uses 8 channels for example. Because with a joystick only two channels can be recorded, the recording of all channels need to be done sequentially. In case of Mr. Bechele I recorded first the mouth movement according to the speech audio mp3 file. Because mouth movements are very quick, they need full concentration to acieve a more or less accurate result. Therefore I just recorded one channel only, though I had two channels available. Then I recorded the eye lid movement with also only one channel. Finally I recorded the eye movement with two channels at the same time. The audio data was divided in single, short sections, to allow the puppet player to respond in the speech pauses. After finishing recording, audio data and movement can be output step by step by pressing a button, so that the audience has the impression the puppet talks really to the puppet player.
Here is the minimum hardware equipment: Raspi3 with PCA9685 PWM Controller, cabling and power supplies. In addition the joy stick and some servos. The small PCB holds the operating buttons to control play. The ear plugs are fine for recording. Later for play, you connect there an amplifier.