feat(voz): voz de robo sintetizada no estilo dos robozinhos de cinema

- voz-robo.js: silabas com deslize de tom, vibrato e filtro de formante
  ("uou", "ohh"), motorzinho de ruido filtrado e cliques; tudo gerado na
  hora com Web Audio, sem gravacoes nem arquivos de terceiros
- um som proprio para cada gesto, incluindo maos (motor ao subir e descer)
- balbucio de robo na resposta da conversa (mesma frase, mesmo som; sobe
  no fim quando e pergunta) e silencio dos gestos enquanto ele "fala"
- tela Rosto: ouvir a voz no PC e botao "Testar fala"; bipes antigos
  ficam como reserva

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
julio
2026-10-06 02:57:32 -03:00
co-authored by Claude Opus 5.5
parent 319e63cc42
commit f7c4793dc2
11 changed files with 395 additions and 9 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ def main():
def run(*command):
subprocess.run([str(x) for x in command], check=True)
for name in ('carinha.html', 'camera.html', 'rosto-motor.js'):
for name in ('carinha.html', 'camera.html', 'rosto-motor.js', 'voz-robo.js'):
shutil.copy2(HERE.parent / name, HERE / 'app/assets' / name)
with tempfile.TemporaryDirectory(prefix='carinha-build-', dir=work) as folder:
tmp = Path(folder)