Processament de so i veu en robòtica
Els robots no només perceben el món amb càmeres i làsers: el so és un canal de percepció i comunicació fonamental, especialment en robòtica social i col·laborativa. Aquesta pàgina cobreix tres usos principals: entendre la veu humana, generar veu, i localitzar l'origen d'un so.
Reconeixement de veu (Speech-to-Text) per a comandes verbals
El reconeixement de veu (ASR, Automatic Speech Recognition) converteix àudio parlat en text, permetent controlar un robot amb comandes de veu en lloc d'una interfície gràfica o un teclat.
Whisper (OpenAI, 2022) és el model de referència el 2026: multilingüe (incloent el català), robust al soroll de fons i disponible en versions de diferents mides per córrer localment.
# Transcripcio d'una comanda de veu amb Whisper
# pip install openai-whisper
import whisper
model = whisper.load_model("small") # 'tiny', 'base', 'small', 'medium', 'large'
resultat = model.transcribe("comanda_operari.wav", language="ca")
print(f"Comanda transcrita: {resultat['text']}")
# Interpretacio simple de la comanda (paraules clau)
comanda = resultat['text'].lower()
if "atura" in comanda or "para" in comanda:
accio = "aturar_robot"
elif "porta" in comanda:
accio = "navegar_a_desti"
else:
accio = "comanda_no_reconeguda"
print(f"Accio interpretada: {accio}")
Vosk és una alternativa lleugera i totalment offline (sense connexió a internet), preferible quan la privadesa o la latència són crítiques (per exemple, un robot en una planta sense accés a internet).
Síntesi de veu (Text-to-Speech) per a la interacció robot-humà
La síntesi de veu (TTS, Text-to-Speech) genera àudio parlat a partir de text, permetent que el robot respongui verbalment. Eines habituals el 2026:
- Coqui TTS / Piper: models oberts, executables localment, amb veus en català.
- ElevenLabs: API de pagament amb veus molt naturals, usada quan la qualitat prima sobre la privadesa.
- Google Cloud Text-to-Speech / Azure Speech: APIs cloud amb suport multilingüe robust.
# Sintesi de veu offline amb Piper
# pip install piper-tts
import subprocess
text_resposta = "Robatori detectat a la zona tres. Enviant avis a seguretat."
subprocess.run([
"piper",
"--model", "ca_ES-upc_ona-medium.onnx",
"--output_file", "resposta.wav",
], input=text_resposta.encode())
Combinant ASR + un LLM + TTS s'obté un assistent de veu complet per a robots: el robot escolta la comanda (Whisper), la interpreta i decideix la resposta (un LLM com els vistos al RA3), i respon en veu alta (Piper/ElevenLabs) — l'arquitectura que segueixen assistents com Amazon Astro o els robots socials.
Localització de la font sonora (Sound Source Localization)
Alguns robots (drons de rescat, robots de seguretat) necessiten saber d'on prové un so sense veure'n la font: un crit d'auxili, un tret o una alarma. Això s'aconsegueix amb un array de micròfons (típicament 4-8 micròfons distribuïts geomètricament):
- Cada micròfon rep el mateix so amb un petit retard temporal diferent, segons la seva distància a la font.
- Mesurant aquests retards (Time Difference of Arrival, TDOA) es pot triangular la direcció (i, amb prou micròfons, la posició 3D) de la font sonora.
- ReSpeaker (Seeed Studio) és un array de micròfons habitual en robòtica educativa i de recerca, amb SDK Python per obtenir directament l'angle d'arribada del so.
So com a senyal de manteniment predictiu
El so d'una màquina canvia subtilment quan un component comença a fallar (un rodament desgastat, un motor desequilibrat) abans que el problema sigui visible o que un sensor de vibració el detecti. Models de classificació d'àudio (espectrogrames + CNN, o embeddings d'àudio pre-entrenats com YAMNet) poden detectar aquestes anomalies acústiques, complementant el manteniment predictiu.
Miniactivitat — AC5071/04/05 — Assistent de veu bàsic per a un robot
Dissenya (en text, sense necessitat de maquinari real) el flux complet d'un assistent de veu per a un robot d'atenció al públic de l'institut: (1) quina eina ASR i quina eina TTS triaries i per què, (2) quines 5 comandes de veu hauria d'entendre com a mínim, (3) com respondria el robot si no entén la comanda (fallback), i (4) un risc de privadesa o seguretat que caldria tenir en compte si el robot grava àudio contínuament.