Hola a todos,
Hoy os voy a hablar de una arquitectura de Text-to-Speech construida sobre Azure AI Foundry e integrada con Power Platform.
El objetivo es diseñar un flujo donde Power Apps envía texto, Power Automate orquesta la llamada al servicio de IA y Azure genera el audio en tiempo real, devolviéndolo listo para ser reproducido o almacenado.
Una solución ligera, escalable y lista para producción.
El modelo que vamos a usar es Text-to-Speech (tts)

El primer paso es desplegar el modelo para poder usarlo, esto lo vamos a hacer en Azure AI foundry. A continuación, vamos a diseñar la app para poder realizar el ejemplo:
Así:

Necesitaremos un TextInput para escribir lo que queremos pasar a Audio y luego dos listas desplegables. Una para elegir el tipo de voz, os dejo aquí el código con los estilos de tts:
[
"";
"Alloy";
"Ash";
"Ballad";
"Coral";
"Echo";
"Fable";
"Onyx";
"Nova";
"Sage";
"Shimmer";
"Verse"
]
Y aquí las variantes por países del Español:
[
"";
"España";
"México";
"Argentina";
"Colombia";
"Chile";
"Perú";
"Uruguay";
"Venezuela";
"Ecuador";
"Estados Unidos (Latino)";
"Centroamérica";
"Cuba"
]
Bien, luego añadiremos un control de audio y un botón para obtener el audio.
El código del botón:
Set(
varAudioUrl;
PASARTEXTOAAUDIO.Run(
TextInput1.Text;
Lower(ddVoz.Selected.Value);
ddEspanolGeo.Selected.Value
).varaudiourl
)
Pero para que todo esto funcione es necesario utilizar un flujo para conectar App y Azure:



Os dejo el body del http:
{
"model": "tts-generador",
"input": "@{triggerBody()['text']}",
"voice": "@{toLower(triggerBody()['text_1'])}",
"instructions": "Habla con pronunciación natural de español de @{triggerBody()['text_2']}, respetando entonación, ritmo y rasgos fonéticos propios.",
"format": "mp3"
}
Y el concat del AudioData:
concat('data:audio/mp3;base64,', base64(body('HTTP')))
Y ya lo tenemos.
A partir de aquí podremos obtener variantes de voz muy bien logradas. No obstante, es importante tener en cuenta que, según el tipo de voz seleccionada, el resultado puede sonar más o menos neutro y el acento será más o menos perceptible.
También quiero destacar un aspecto clave de seguridad: en la acción HTTP es recomendable utilizar Azure Key Vault para proteger las claves y credenciales. De esta forma evitamos exponer información sensible dentro del flujo y reforzamos la seguridad de la arquitectura.
En mi caso, para pruebas e investigaciones utilizo configuraciones simplificadas, pero en entornos reales siempre trabajo con Key Vault para la gestión segura de secretos.
