Aves do Brasil — Skill de Alexa: identificación de aves por voz con Python y datos abiertos

Aves do Brasil — Skill de Alexa: identificación de aves por voz con Python y datos abiertos

Pasé meses tratando de identificar un ave en el patio. Construí una skill de Alexa para no tener que pasar por eso otra vez.

Una pareja de aves verdes aparecía todas las mañanas en el mismo cable, cerca de casa. Tenía la certeza de que no eran maritacas (nombre popular brasileño de los loros del género Pionus) — el tamaño era distinto, el ruido era distinto. Pero no sabía cómo se llamaban.

Fueron meses. Busqué en WikiAves, que es la referencia en Brasil y un trabajo excelente — pero para un principiante como yo, la cantidad de información resultaba más intimidante que útil. No sabía los términos correctos para filtrar. No sabía si «verde con mancha roja en el ala» era un sabiá exótico (zorzal) o un psitácido común. Lo descubrí después: eran ararinhas Maracanã (maracanás).

Y entonces vino la ironía que plantó todo: fui a verificar cómo sería su llamado para confirmarlo, y descubrí que los psitácidos no tienen un llamado estandarizado. El canto que quería usar como prueba simplemente no existe de forma clasificable. El desafío ya estaba en mi cabeza.

La primera idea era equivocada (y poco ética)

Mi plan original era usar Alexa para escuchar los sonidos de las aves alrededor e identificarlas por audio. Dos problemas mataron esa idea el mismo día:

Alexa solo capta voz humana. No escucha el ambiente — el micrófono está optimizado para comandos hablados. Los sonidos de fondo son ruido, no señal. No existe un «modo escucha» que yo pudiera activar.

Atraer aves con playback es una práctica cuestionable. Reproducir el canto de una especie para atraerla causa estrés territorial, puede alejar aves de sus nidos e interfiere en la reproducción. La IN ICMBio 14/2018 (instrucción normativa del organismo ambiental federal de Brasil) y el CEMAVE (centro brasileño de investigación y conservación de aves silvestres) orientan en contra. Cuando lo descubrí, descarté la idea sin pensarlo dos veces.

Entonces la skill se convirtió en otra cosa: en lugar de «grabe lo que escuchó», pasó a ser «describa lo que vio». Se le habla a Alexa en lenguaje natural — color, tamaño, dónde estaba, forma del pico — y ella devuelve las especies más probables.

El stack: Python, Bayes y cuatro bases abiertas que no se hablan

Alexa no es exactamente un equipo inteligente. Reconoce voz y llama a una función en la nube. Toda la inteligencia está en un Lambda (Python) en AWS, y el trabajo de verdad fue hacer que cuatro bases de datos que no fueron creadas para conversar entre sí produjeran una respuesta coherente.

AVONET (Tobias et al. 2022, CC BY 4.0) tiene rasgos morfológicos estandarizados para más de 11 mil especies — de allí vienen los 7 atributos que la skill extrae de su descripción: color principal, color secundario, tamaño por ancla, ambiente, posición, pico y cola.

GBIF tiene registros de ocurrencia de aves en Brasil. Usé esos datos como prior bayesiano: si usted está en São Paulo y describe «ave verde grande», el scorer pondera más las especies que de hecho aparecen en la región (radio de 30 km, con al menos 20 registros). Bem-te-vi (bienteveo) antes que una especie rara con la misma descripción.

xeno-canto tiene las grabaciones reales de los cantos. Y aquí entra una decisión que para mí no era opcional: no podía simplemente conectarme a los audios sin dar crédito a quien grabó. Cada reproducción muestra el nombre del grabador, la licencia (CC BY-NC-SA 4.0) y el número de la grabación en el acervo. Python se mostró excelente para capturar esos audios y organizar tanto especies como autores de forma programática.

Han et al. 2025 (CC0) complementa con datos de colores de plumaje que AVONET no cubre.

El slot type AMAZON.SearchQuery en pt-BR captura habla libre — «vi un pajarito amarillo con alas negras en el piso del patio» entra completo como texto y el parser extrae los atributos. No hay menú, no hay «diga 1 para color». Usted habla como le hablaría a un amigo.

Los números, sin inventar nada

1.627 especies de todo Brasil. 1.014 con grabación real de xeno-canto. La base empezó con 390 especies de la región de São Paulo y se expandió para cubrir todos los biomas brasileños.

Precisión simulada con ruido realista (descripciones incompletas, atributos equivocados, sinónimos regionales): el ave correcta aparece entre las 3 primeras sugerencias en ~54% de los casos. No es 90%. Es lo que el modelo entrega hoy con datos abiertos y un parser que acepta habla libre. La transparencia sobre ese número importa más que redondearlo hacia arriba.

También hay un quiz de cantos: la skill reproduce una grabación real y usted intenta adivinar la especie. Si acierta, lleva el puntaje. Si se equivoca, revela cuál era y la reproduce de nuevo para que usted la asocie. Es una forma de entrenar el oído sin tener que estar en el campo.

Y el mayor cuello de botella de ingeniería no fue el scorer — fue el Alexa Developer Console. Probar una skill de Alexa es un proceso lento, con deploys que tardan, logs que se demoran y una interfaz que poca gente domina. Quien ya desarrolló para Alexa lo sabe. Quien no lo hizo, lo va a descubrir.

Lo que la skill NO hace (a propósito)

No graba el sonido del ave — Alexa no puede. No reproduce cantos en loop para atraer aves — eso es poco ético. No tiene métricas de uso porque acaba de ser publicada. No tiene testimonios de usuarios porque no los voy a inventar. WikiAves, xeno-canto, GBIF y AVONET son fuentes acreditadas, no socios.

Cada reproducción de canto viene con aviso de playback responsable. Reproducción única, volumen controlado, crédito al grabador, orientación sobre época reproductiva. Eso no es una feature — es una obligación.

La invitación: pruebe, rompa, mejore

El código es MIT y el repositorio es público: github.com/jvitorcarvalho/aves-do-brasil-alexa.

Quiero que la gente se divierta con esto. Que descubran el canto del urutau (ave nocturna conocida en español como urutaú), que es una de las cosas más curiosas que va a escuchar. Que identifiquen un ave en el patio y se lo cuenten al amigo en el almuerzo. Que un desarrollador de Manaus tome el repositorio y calibre los priors para la Amazonía. Que un ornitólogo corrija los nombres populares que vinieron del GBIF y que probablemente tienen errores.

Hoy la skill cubre todo Brasil — 1.627 especies, 1.014 con grabación. Hay espacio.

Para probarla: «Alexa, abre Aves do Brasil». Es gratuita, sin anuncios, sin recolección de datos.

Para contribuir: abra un issue, mande un PR, o dígame que el nombre popular del tico-tico (chingolo) en su ciudad es otro. Todo ayuda.


Desarrollada por Evolutiva Negócios Digitais (João Monlevade/MG, Brasil). Fuentes: AVONET (Tobias et al. 2022, CC BY 4.0), GBIF (CC0), xeno-canto (CC BY-NC-SA 4.0), Han et al. 2025 (CC0), WikiAves (consulta pública). Aviso de playback conforme la IN ICMBio 14/2018 y las directrices del CEMAVE.

Preguntas frecuentes

¿Cómo identifica la skill Aves do Brasil un ave por la descripción hablada?

La skill usa un scorer bayesiano que cruza 7 atributos extraídos de su habla — color, tamaño, ambiente, posición, pico, cola y color secundario — con datos morfológicos de 1.627 especies brasileñas. La base viene de AVONET (Tobias et al. 2022), complementada con datos de ocurrencia del GBIF para ponderar las especies más probables en su región. Usted describe lo que vio en lenguaje natural y recibe las especies más compatibles con la descripción.

¿La skill reproduce cantos para atraer aves?

No. La skill reproduce grabaciones reales de xeno-canto solo una vez por consulta, con volumen controlado y crédito al grabador original. Reproducir cantos en loop para atraer aves causa estrés territorial y puede interferir en la reproducción — práctica no recomendada por la IN ICMBio 14/2018 y por el CEMAVE. Cada reproducción viene acompañada de un aviso de playback responsable.

¿Cuál es la tasa de acierto de la identificación por voz?

En simulaciones con ruido realista (descripciones incompletas, atributos equivocados, sinónimos regionales), el ave correcta aparece entre las 3 primeras sugerencias en aproximadamente 54% de los casos. Ese número refleja el desempeño actual con datos abiertos y un parser de habla libre. La skill no redondea métricas — la transparencia sobre las limitaciones es intencional.

¿La skill Aves do Brasil es gratuita y recolecta datos personales?

La skill es gratuita, sin anuncios y sin recolección de datos personales. El código es open source bajo licencia MIT, disponible en el repositorio público. Las bases de datos usadas (AVONET, GBIF, xeno-canto, Han et al. 2025) son todas abiertas y debidamente acreditadas.

¿Puedo contribuir con la skill o corregir nombres populares de aves?

Sí. El repositorio acepta issues y pull requests — las contribuciones de ornitólogos, desarrolladores y observadores de aves son bienvenidas. Los nombres populares regionales que difieren de los registros del GBIF pueden corregirse directamente. La base actual cubre 1.627 especies de Brasil y 1.014 con grabación real, pero hay espacio para calibración regional y expansión.