Windows 용 OS X`say` 명령


22

say명령은 아마도 OS X 터미널의 가장 강력한 기능 일 것입니다. 텍스트를 입력으로 받아 컴퓨터의 스피커를 통해 말합니다. Windows에 내장 또는 타사 프로그램을 통해 동등한 명령 줄 도구가 있습니까?



2
상황이 발생할 경우를 대비하여 명령 줄 볼륨 변경 응용 프로그램을 작성해야 할 수도 있습니다.
닌클

답변:


5

PTTS 는 텍스트를 음성으로 변환하는 매우 간단한 Microsoft Windows 명령 줄 프로그램입니다. Microsoft Text to Speech Engine 및 Microsoft Speech SDK를 사용하는 경우 텍스트 음성 변환 엔진은 다소 품질이 낮은 하나의 음성으로 Windows XP와 함께 설치됩니다. Jampal 설치 프로그램에는 두 가지 더 나은 소리가 포함되어 있습니다. (웹 사이트에서 인용)

재 지정하거나 텍스트로 파이프하여 프로그램에 텍스트를 입력하면 간단히 사용할 수 있습니다.

ptts < file.txt
echo Hello there|ptts

@bubu, 문서를 오해하지 않는 한이 소프트웨어는 파일에서만 말할 수있는 것처럼 보입니다. 중간 파일을 만들지 않고도 명령 줄에서 직접 텍스트를 받아 들일 수있는 방법이 있는지 알고 있습니까?
닌클

2
Nvm, 알아 냈습니다. 프로그램으로 파이프해야합니다. 예 echo Hello|ptts.exe. 텍스트를 명령의 인수로 사용하는 방법을 선호하지만 그렇게 할 수있는 방법이 없으면 충분합니다.
닌클

@nhinkle 예 stdin에서 읽는 방법 중 하나는 그것을 통해 파이프입니다
bubu

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를 만든 다음 시스템 음성으로 말합니다. 실행이 끝나면 다른 실행을위한 공간을 제공하기 위해 스크립트가 삭제됩니다.


어떻게 작동하고 어떻게 사용하는지 설명하기 위해 게시물을 편집 해 주시겠습니까? 또한이 솔루션의 파일 이동 목적은 무엇입니까?
Cfinley

@Cfinley : 게시물 수정
Alessandro Mascolo


1

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')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.