GUÍA

Texto a voz en PowerShell con voces naturales

PowerShell puede hablar sin instalar nada: Windows incluye el sintetizador System.Speech, y unas líneas bastan para que un script avise de que terminó una copia de seguridad o falló una compilación. Pero son las voces robóticas que Windows tiene desde hace años, y cambian de un equipo a otro.

El motor gratuito SuperClonica ejecuta voces neuronales naturales en tu ordenador o servidor, y PowerShell llega a él con una sola llamada a Invoke-RestMethod. Esta guía muestra las dos formas y cuándo usar cada una.

Dos formas de hablar desde PowerShell

Para un aviso rápido con palabras, System.Speech vale; para todo lo que la gente escucha, usa una voz natural.

  • System.Speech: integrado en Windows; cárgalo con Add-Type -AssemblyName System.Speech y usa la clase SpeechSynthesizer.
  • Funciona sin conexión y no necesita nada más, pero las voces suenan robóticas y dependen de las voces instaladas en Windows.
  • SuperClonica: un servidor HTTP local con voces naturales, voces de personajes y tu propia voz entrenada.
  • Habla 31 idiomas; el chino aún no está disponible.

Escucha las voces gratis

En la página de cualquier voz, escribe la frase que dirá tu script, de 30 a 100 caracteres, elige el idioma y pulsa el botón para generarla. En unos segundos oyes la diferencia, sin cuenta.

Llama a un servidor SuperClonica local

Windows PowerShell 5.1 envía el cuerpo de texto con una codificación equivocada, así que pasa bytes UTF-8 como arriba, y lee un .ps1 sin BOM como ANSI: guarda los scripts con tildes o eñes en UTF-8 con BOM.

  • Inicia el servidor una vez, en Windows con Docker Desktop: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu.
  • Genera una frase desde PowerShell: $json = @{text='La copia nocturna ha terminado'; voice='F1'; lang='es'} | ConvertTo-Json; Invoke-RestMethod -Method Post -Uri http://localhost:8000/synthesize -ContentType 'application/json' -Body ([Text.Encoding]::UTF8.GetBytes($json)) -OutFile hello.wav.
  • El archivo es un WAV mono de 16 bits que sirve para cualquier reproductor, editor de vídeo o script.
  • Define SUPERCLONICA_API_KEY en el servidor y añade -Headers @{Authorization="Bearer TU-CLAVE"} si otros equipos pueden acceder a él.

Scripts que hablan

Reproduce el WAV al momento con (New-Object Media.SoundPlayer "hello.wav").PlaySync() o guarda los avisos para después. Una tarea programada puede leer un resumen matinal, un trabajo de CI puede anunciar una compilación fallida por el altavoz de la oficina y un bucle sobre un CSV puede generar cientos de locuciones de una vez. Una frase corta tarda bastante menos de un segundo en un procesador normal.

Cuándo basta con System.Speech

System.Speech basta cuando la voz solo tiene que entenderse, no disfrutarse: un aviso rápido mientras estás en el escritorio, una prueba de accesibilidad, un equipo sin Docker. Usa SuperClonica cuando el audio sale de tu escritorio, en vídeos, locuciones, avisos o productos, o cuando la misma voz debe sonar igual en todos los equipos.