답변:
PTTS 는 텍스트를 음성으로 변환하는 매우 간단한 Microsoft Windows 명령 줄 프로그램입니다. Microsoft Text to Speech Engine 및 Microsoft Speech SDK를 사용하는 경우 텍스트 음성 변환 엔진은 다소 품질이 낮은 하나의 음성으로 Windows XP와 함께 설치됩니다. Jampal 설치 프로그램에는 두 가지 더 나은 소리가 포함되어 있습니다. (웹 사이트에서 인용)
재 지정하거나 텍스트로 파이프하여 프로그램에 텍스트를 입력하면 간단히 사용할 수 있습니다.
ptts < file.txt
echo Hello there|ptts
echo Hello|ptts.exe
. 텍스트를 명령의 인수로 사용하는 방법을 선호하지만 그렇게 할 수있는 방법이 없으면 충분합니다.
이를 위해 간단한 배치 스크립트를 만들었습니다. 소스 코드는 다음과 같습니다
@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를 만든 다음 시스템 음성으로 말합니다. 실행이 끝나면 다른 실행을위한 공간을 제공하기 위해 스크립트가 삭제됩니다.
이 질문은 Stack Overflow에서 요청되었습니다. 나는 VBS 스크립트로 대답을 좋아한다 .
또한 espeak
Windows 및 Linux에서 사용할 수 있으며 OS X로 포팅되었습니다. 기본 제공 Windows TTS 엔진을 사용한다고 생각하지 않습니다.
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 )
Add-Type -AssemblyName System.Speech
객체 인스턴스화
$synth = New-Object -TypeName
System.Speech.Synthesis.SpeechSynthesizer
함수를 호출하고 인수로 단어를 입력하십시오.
$synth.Speak('hey man')