Windows 에는 컴퓨터가 말하는 대로 말하거나 말할(computer talk or speak) 수 있는 멋진 기능이 있습니다! 이 방법은 Windows XP(Windows XP) , Vista , 7, 8 및 10 에 설치된 SAPI ( 음성 응용 프로그래밍 인터페이스(Speech Application Programming Interface) )라는 내장 API 를 활용 합니다.
Microsoft Speech API 는 Windows 에 기본 제공되는 TTS(텍스트 음성 변환) 접근성 기능(accessibility feature) 에 사용됩니다 . API 를 호출하는 프로그램을 작성할 수도 있습니다 . 이를 통해 애플리케이션이 말할 수 있지만 이는 개발자를 위한 것입니다.
컴퓨터가 원하는 것을 말하게 하는 것만으로도 실제로 매우 쉽습니다! 이 기사에서는 사용자의 텍스트 입력(text input) 을 받아 말하는 VBS 스크립트(VBS script) 를 만드는 방법을 보여줍니다 . 또한 말하고 싶은 텍스트를 하드 코딩한 다음 해당 스크립트가 Windows 시작 또는 로그오프와 같은 특정 이벤트에서 실행되도록 예약하는 방법에 대해서도 언급하겠습니다.
텍스트 입력, 메시지 말하기
Windows에서 말하기를 원하는 내용을 입력할 수 있는 대화 상자(dialog box) 를 팝업하는 간단한 스크립트부터 시작하겠습니다 . 먼저 (First)메모장(Notepad) 을 엽니다 .
1단계:(Step 1:) 다음 텍스트를 새 문서에 붙여넣습니다.
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message
웹 브라우저(web browser and paste) 에서 텍스트를 복사 하여 메모장(Notepad) 에 붙여넣을 때 따옴표로 인해 문제가 발생합니다. 파일을 저장하기 전에 각 인용문(")을 살펴보고 삭제하고 인용문을 다시 입력해야 합니다. 아래 예에는 6개의 따옴표가 있습니다. 아래 이미지(image below) 와 같아야 합니다 .
이제 파일을 저장할 때 이름을 지정하되 이름 뒤에 .VBS 도 입력해야 합니다 . 그런 다음 파일 형식( Save as type) 상자 에서 기본 텍스트 문서(Text Documents) 대신 모든 파일( All files) 을 선택합니다 .
이제 VBS 파일(VBS file) 을 두 번 클릭 하면 말하고 싶은 텍스트를 입력할 수 있는 입력 상자 가 표시됩니다! (input box)무언가를 입력(Type something) 하고 확인을 클릭하십시오.
모든 것을 올바르게(everything right) 했다면 남성 또는 여성의 목소리가 문장을 말하는 것을 들어야합니다. 어떤 종류의 오류 메시지가 나타나면(error message) 텍스트를 다시 복사하여 붙여넣고 해당 따옴표를 바꾸십시오.
SAPI 음성 설정 구성
이것은 재미있지만 다른 설정으로 말하는 컴퓨터를 구성할 수도 있습니다. 우리는 볼륨, 음성 대화의 속도 또는 속도를 변경하고 남성과 여성의 성별을 변경할 수 있습니다. 다음은 몇 줄을 추가한 예제 코드 입니다.(example code)
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
Set sapi.Voice = sapi.GetVoices.Item(1)
sapi.Rate = 0
sapi.volume = 100
sapi.Speak message
기본 속도(default rate) 는 0이고 범위는 -10에서 10입니다. -10은 음성이 매우 느리게 말하고 10은 매우 빠르게 말합니다. 볼륨의 기본값은 100이고 범위는 0에서 100입니다. Set sapi.Voice 로 시작하는 줄을 사용하면 시스템에 설치된 경우 다른 음성으로 변경할 수 있습니다.
선택할 수 있는 음성의 수는 운영 체제(operating system) 에 따라 다릅니다 . Windows 7 에는 Microsoft Anna 라는 목소리만 있습니다.
Windows 10 에는 아래와 같이 Microsoft David와 Microsoft Zira(Microsoft David and Microsoft Zira) 의 두 가지 음성이 있습니다.
시스템에 음성이 하나만 설치된 경우 sapi.GetVoices.Item(1) 을 sapi.GetVoices.Item(0) 으로 변경해야 합니다. 그렇지 않으면 스크립트를 실행하려고 할 때 오류 메시지가 표시 됩니다. (error message)다른 메모장 문서(Notepad document and paste) 를 만들고 아래에 코드를 붙여넣으면 어떤 음성이 설치되어 있는지 알 수 있습니다. 위와 같이 .VBS 파일로 저장하고 실행합니다.
Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next
지금까지 이 팝업 대화 상자 를 사용하여 텍스트를 입력했지만 단순히 (popup dialog)스크립트 파일(script file) 에 메시지를 입력할 수도 있습니다 . 이것은 스크립트가 자동으로 실행되도록 예약하려는 경우에 유용합니다. 분명히 이것은 친구와 가족에게 장난을 치는 데 사용될 수 있으며 정말 잘 작동합니다.
누군가 컴퓨터를 켜고 컴퓨터가 " 안녕 John(Hello John) , 나 너무 졸려, 제발 오늘 방해하지 마!"라고 말하는 것을 듣는다고 상상해 보십시오. 부팅할 때! 나는 경험에서 당신에게 약속할 수 있습니다. 그것은 히스테리적이며 당신은 확실히 그것을 시도해야 합니다.
메시지를 하드코딩하려면 마지막 줄을 다음과 같이 변경하면 됩니다.
sapi.Speak “Hello John, I am very tired today!”
스케줄 스크립트 파일
이제 의도한 대상에 대한 메시지를 하드코딩했으므로 원할 때 메시지를 실행하기만 하면 됩니다. 기술에 정통한 경우 AutoIt 과 같은 프로그램을 사용할 수 있습니다. 이 프로그램을 사용 하면 특정 프로그램이 열리거나 창이 최대화 또는 최소화될 때 스크립트 파일(script file) 을 실행하는 것과 같은 극단적인 작업을 수행할 수 있습니다 .
이 게시물에서 모든 것을 다룰 시간이 없지만 다행히 Microsoft 에는 스크립트로 꽤 복잡한 작업을 쉽게 수행할 수 있는 작업 스케줄러(Task Scheduler) 라는 기본 제공 기능이 있습니다.
내 이전 게시물은 Windows 에서 특정 이벤트가 발생할 때 실행되도록 스크립트 파일(script file) 을 예약하는 방법에 대해 자세히 설명합니다 . 스크립트를 작동시키는 데 문제가 있는 경우 언제든지 의견을 게시해 주시면 도와드리겠습니다. 즐기다!
How to Make Your Computer Talk/Speak What You Type
There is cool feature in Windows that аllows you to makе your computer talk or spеak whatever you tell it! This method takes advantage of a built-in API installed on Windows XP, Vista, 7, 8 and 10 сalled SAPI (Speech Application Programming Interface).
The Microsoft Speech API is what is used for the text-to-speech accessibility feature built into Windows. You can also write programs that call the API, which would allow you to let your applications speak, but that’s for developers.
Just making your computer say what you want is pretty easy actually! In this article, I’ll show you how to create a VBS script that will take a text input from a user and then speak it. I’ll also mention how to hard code the text you want spoken and then schedule that script to run on specific events like starting Windows or logging off.
Input Text, Speak Message
Let’s start off with a simple script that will popup a dialog box where you can type in what you want Windows to speak. First, go ahead and open Notepad.
Step 1: Paste the following text into a new document:
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
sapi.Speak message
Note that when you copy text from your web browser and paste it into Notepad, the quotes will cause problems. Before you save the file, you need to go through and delete each quote (“) and retype the quote. In the example below, there are six quotes. It should look something like the image below.
Now when you go to save the file, give it any name, but make sure you also type .VBS after the name. Next, for the Save as type box, choose All files instead of the default Text Documents.
Now double-click on the VBS file and you should see an input box where you can type in the text you want spoken! Type something and click OK.
If you did everything right, you should hear either a male or female voice speak out your sentence. If you get any kind of error message, make sure to copy and paste the text again and replace those quotes.
Configure SAPI Voice Settings
This is fun, but we can also configure our little talking computer with different settings. We can change the volume, how fast or slow the voice talks and change the gender between male and female. Here is some example code where I added a couple of extra lines.
Dim message, sapi
message=InputBox(“Enter the text you want spoken”,”Speak This”)
Set sapi=CreateObject(“sapi.spvoice”)
Set sapi.Voice = sapi.GetVoices.Item(1)
sapi.Rate = 0
sapi.volume = 100
sapi.Speak message
The default rate is 0 and the range is -10 to 10. -10 will have the voice speak super slowly and 10 will speak super fast. The volume is defaulted at 100 and the range is 0 to 100. The line that starts with Set sapi.Voice will allow you to change to another voice, if installed on your system.
Note that the number of voices you can choose from depends on the operating system. In Windows 7, there is only one voice, Microsoft Anna.
In Windows 10, there are two voices: Microsoft David and Microsoft Zira as shown below.
If there is only one voice installed on your system, you have to change that says sapi.GetVoices.Item(1) to sapi.GetVoices.Item(0), otherwise you will get an error message when you try to run the script. You can also create another Notepad document and paste the code below in, which will tell you what voices are installed. Save it as a .VBS file like shown above and run it.
Set VObj = CreateObject(“SAPI.SpVoice”)
For Each Voice In VObj.getvoices
I = I + 1
msgbox “” & (I – 1) & ” – ” & Voice.GetDescription
Next
Up until now, we have been using this popup dialog to enter text, but you could also simply type your message into the script file. This would be useful if you wanted to then schedule the script to run automatically. Obviously, this can be used to prank your friends and family and it works really well.
Just imagine someone turning on their computer and hearing the computer tell them “Hello John, I’m very sleepy, please don’t bother me today!” when it boots up! I can promise you from experience, it’s hysterical and you should definitely try it.
In order to hardcode the message, simply change the last line to something like this:
sapi.Speak “Hello John, I am very tired today!”
Schedule Script File
Now that you have hardcoded your message for your intended target, you simply have to run it when you want. If you are tech-savvy, you could use a program like AutoIt, which will allow you to do extreme stuff like run your script file when a certain program is opened or when a windows is maximized or minimized.
I don’t have time to get into all that in this post, but luckily Microsoft has a built-in feature called the Task Scheduler that lets you do some pretty complicated stuff with scripts easily.
My previous post goes in depth on how to schedule a script file to run when certain events occur in Windows. If you have any trouble getting your script to work, feel free to post a comment and I’ll try to help. Enjoy!