Comando `say` de OS X para Windows

Comando `say` de OS X para Windows

El saycomando es quizás la característica más atractiva del terminal OS X: toma texto como entrada y lo pronuncia a través de los parlantes de la computadora. ¿Existe alguna herramienta de línea de comandos equivalente en Windows, ya sea integrada o mediante un programa de terceros?

Respuesta1

PTTes un programa de línea de comandos de Microsoft Windows muy sencillo para convertir texto a voz. Si utiliza Microsoft Text to Speech Engine y Microsoft Speech SDK. El Text to Speech Engine se instala con Windows XP con una voz de calidad algo pobre. El programa de instalación de Jampal incluye dos voces que suenan mejor. (citado del sitio web)

Se puede utilizar simplemente ingresando el texto en el programa mediante redirección o ingresando texto:

ptts < file.txt
echo Hello there|ptts

Respuesta2

Me cansé de intentar hacer funcionar herramientas obsoletas, así que creé wsay.

Funciona como say, puedes seleccionar diferentes voces y puedes enviarlas fácilmente a un archivo wave.

https://github.com/p-groarke/wsay/releases

Salud

Respuesta3

He creado un script por lotes simple para hacer esto. Aquí está el código fuente

@echo off
echo Dim Speak >> %HOMEPATH%\speak.vbs
echo Set Speak=CreateObject("sapi.spvoice") >> %HOMEPATH%\speak.vbs
echo Speak.Speak "%*">> %HOMEPATH%\speak.vbs
%HOMEPATH%\speak.vbs
del %HOMEPATH%\speak.vbs

Guarde este script en un archivo llamado "speak.bat" y muévalo a un directorio al que haga referencia su variable PATH.

Este programa crea un vbs simple con su entrada y luego lo habla con la voz del sistema. Al final de la ejecución, el script se eliminará para dejar espacio para otra ejecución.

Respuesta4

Tienen esta biblioteca en el SDK, donde probablemente podrías crear una utilidad más avanzada con un poco de esfuerzo personal.

https://www.microsoft.com/en-us/download/details.aspx?id=27224

Aunque esta es probablemente la forma más conveniente, ya que está integrada de forma nativa en el sistema y se puede acceder a ella a través de PowerShell.

Llame a la función desde el espacio de nombres (https://msdn.microsoft.com/en-us/library/gg145021(v=vs.110).aspx)

# Call the function from the namespace
Add-Type -AssemblyName System.Speech

# Instantiate the Object
$synth = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer

# Call the function and input your words as it's argument.
$synth.Speak('hey man')

información relacionada