GUIA

Texto em fala no PowerShell com vozes naturais

O PowerShell fala sem instalar nada: o Windows traz o sintetizador System.Speech, e poucas linhas fazem um script avisar que o backup terminou ou a compilação falhou. Mas são as vozes robóticas que o Windows tem há anos, e elas mudam de máquina para máquina.

O motor gratuito SuperClonica roda vozes neurais naturais no seu computador ou servidor, e o PowerShell o alcança com uma única chamada Invoke-RestMethod. Este guia mostra os dois jeitos e quando usar cada um.

Duas formas de falar no PowerShell

Para um aviso rápido com palavras, o System.Speech serve; para tudo que as pessoas vão ouvir, use uma voz natural.

  • System.Speech: embutido no Windows; carregue com Add-Type -AssemblyName System.Speech e use a classe SpeechSynthesizer.
  • Funciona offline e não precisa de nada a mais, mas as vozes soam robóticas e dependem das vozes instaladas no Windows.
  • SuperClonica: um servidor HTTP local com vozes naturais, vozes de personagens e a sua própria voz treinada.
  • Fala 31 idiomas; o chinês ainda não é suportado.

Ouça as vozes grátis

Na página de qualquer voz, escreva a frase que o seu script vai dizer, de 30 a 100 caracteres, escolha o idioma e clique no botão para gerar. Em poucos segundos você ouve a diferença, sem conta.

Chame um servidor SuperClonica local

O Windows PowerShell 5.1 envia o corpo de texto na codificação errada, então passe bytes UTF-8 como acima, e lê um .ps1 sem BOM como ANSI: salve scripts com acentos em UTF-8 com BOM.

  • Inicie o servidor uma vez, no Windows com o Docker Desktop: docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu.
  • Gere uma frase no PowerShell: $json = @{text='O backup noturno terminou'; voice='F1'; lang='pt'} | ConvertTo-Json; Invoke-RestMethod -Method Post -Uri http://localhost:8000/synthesize -ContentType 'application/json' -Body ([Text.Encoding]::UTF8.GetBytes($json)) -OutFile hello.wav.
  • O arquivo é um WAV mono de 16 bits que serve para qualquer player, editor de vídeo ou script.
  • Defina SUPERCLONICA_API_KEY no servidor e adicione -Headers @{Authorization="Bearer SUA-CHAVE"} se outras máquinas puderem acessá-lo.

Scripts que falam

Toque o WAV na hora com (New-Object Media.SoundPlayer "hello.wav").PlaySync() ou guarde os avisos para depois. Uma tarefa agendada pode ler um resumo matinal, um job de CI pode anunciar uma compilação com falha na caixa de som do escritório e um laço sobre um CSV pode gerar centenas de mensagens de uma vez. Uma frase curta leva bem menos de um segundo num processador comum.

Quando o System.Speech basta

O System.Speech basta quando a voz só precisa ser entendida, não apreciada: um alerta rápido enquanto você está à mesa, um teste de acessibilidade, uma máquina sem Docker. Use a SuperClonica quando o áudio sai da sua mesa, em vídeos, mensagens, avisos ou produtos, ou quando a mesma voz precisa soar igual em todas as máquinas.