OS X 'diz' comando para Windows

19

O comando say é talvez o recurso mais atraente do terminal OS X - ele usa o texto como entrada e o fala através dos alto-falantes do computador. Existe alguma ferramenta de linha de comando equivalente no Windows, seja interna ou por meio de um programa de terceiros?

    
por nhinkle 20.12.2010 / 05:23

4 respostas

5

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 baixa qualidade. O programa de instalação do Jampal inclui duas vozes que soam melhor. (citado do site)

Pode-se usar simplesmente digitando o texto no programa por redirecionamento ou por piping no texto:

ptts < file.txt
echo Hello there|ptts
    
por 20.12.2010 / 05:29
2

Esta pergunta foi feita no Stack Overflow. Eu gosto da resposta com o script VBS .

Além disso, espeak está disponível para Windows e Linux e foi portado para o OS X. Eu não acredito que ele use o mecanismo interno do Windows TTS.

    
por 20.12.2010 / 06:23
2

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 por sua variável PATH.

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

    
por 03.03.2015 / 20:36
1

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

link

Embora esta seja provavelmente a maneira mais conveniente, pois é nativamente incorporada ao sistema e é acessível via powershell.

Chame a função do namespace ( link )

Add-Type -AssemblyName System.Speech

Instancie o objeto

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

Chame a função e insira suas palavras como argumento.

 $synth.Speak('hey man')
    
por 20.12.2015 / 16:30