Команда OS X `say` для Windows

Команда OS X `say` для Windows

Команда say, возможно, является наиболее убедительной функцией терминала OS X — она принимает текст в качестве ввода и произносит его через динамики компьютера. Есть ли эквивалентный инструмент командной строки в Windows, встроенный или через стороннюю программу?

решение1

ПТТСочень простая программа командной строки Microsoft Windows для преобразования текста в речь. Она использует Microsoft Text to Speech Engine и Microsoft Speech SDK. Text to Speech Engine устанавливается вместе с Windows XP с одним голосом довольно низкого качества. Программа установки Jampal включает два голоса с лучшим звучанием. (цитата с веб-сайта)

Его можно использовать, просто введя текст в программу путем перенаправления или путем передачи текста по конвейеру:

ptts < file.txt
echo Hello there|ptts

решение2

Мне надоело пытаться заставить работать устаревшие инструменты, поэтому я создал wsay.

Работает он примерно так say: можно выбирать разные голоса и легко выводить их в файл WAV.

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

Ваше здоровье

решение3

Я создал простой пакетный скрипт для этого. Вот исходный код

@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

Сохраните этот скрипт в файле с именем «speak.bat» и переместите его в каталог, на который ссылается ваша переменная PATH.

Эта программа создает простой vbs с вашим вводом, затем озвучивает его системным голосом. В конце выполнения скрипт будет удален, чтобы освободить место для другого выполнения.

решение4

У них есть эта библиотека в SDK, с помощью которой вы, вероятно, могли бы создать более продвинутую утилиту, приложив некоторые собственные усилия.

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

Хотя это, пожалуй, самый удобный способ, поскольку он изначально встроен в систему и доступен через PowerShell.

Вызовите функцию из пространства имен (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')

Связанный контент