Comando `say` do OS X para Windows

Comando `say` do OS X para Windows

O saycomando é talvez o recurso mais atraente do terminal OS X - ele recebe texto como entrada e o fala pelos alto-falantes do computador. Existe alguma ferramenta de linha de comando equivalente no Windows, integrada ou por meio de um programa de terceiros?

Responder1

PTTSé um programa de linha de comando muito simples do Microsoft Windows para converter texto em fala. Se usa o Microsoft Text to Speech Engine e o Microsoft Speech SDK. O Text to Speech Engine é instalado com o Windows XP com uma voz de qualidade um tanto ruim. O programa de instalação do Jampal inclui duas vozes com melhor som. (citado do site)

Pode-se usá-lo simplesmente inserindo o texto no programa por redirecionamento ou canalizando o texto:

ptts < file.txt
echo Hello there|ptts

Responder2

Cansei de tentar fazer ferramentas desatualizadas funcionarem, então criei o wsay.

Funciona como say, você pode selecionar vozes diferentes e pode facilmente enviar para um arquivo wave.

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

Saúde

Responder3

Eu criei um script em lote simples para fazer isso. Aqui está o código fonte

@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

Salve este script em um arquivo chamado "speak.bat" e mova-o para um diretório referenciado pela sua variável PATH.

Este programa cria um vbs simples com sua entrada e depois o fala com a voz do sistema. Ao final da execução, o script será deletado para dar espaço para outra execução.

Responder4

Eles têm essa biblioteca no SDK, onde você provavelmente poderia criar um utilitário mais avançado com algum esforço pessoal.

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

Embora esta seja provavelmente a maneira mais conveniente, pois está integrada nativamente no sistema e pode ser acessada via PowerShell.

Chame a função do namespace (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')

informação relacionada