본문 바로가기

컴퓨터&인터넷

윈도우 음성인식 기능으로 현재 시간 듣기 (자명종/ 알람)


윈도우 시계 프로그램들 중에는 알람이나 자명종 기능이 있는 것들이 많다.

그 중에 일정 시간 간격으로 알람으로 시간을 알려주는 자명종을 윈도우에 내장되어있는 음성인식 기능 (speech recognition)을 활용해서 음성으로 현재 시간을 알려주는 프로그램들도 있다.


이런 기능에 특화된 프로그램도 있다. talking clock 이나 voice clock (alarm) 등으로 검색해보면 많이 나옴.

Alarmy 라는 유틸이 대표적이다.


PC 앞에 앉아있는 시간도 많고 어떤 일을 하다보면 시간이 후딱 가는 경우가 많은데, 시간 환기를 할 수 있는 알람 자명종 소리를 일반 사운드 파일이 아닌 현재 시간으로 직접 들을 수 있어 유용한 것 같다.


가볍게 작동하는 음성 알람 자명종 프로그램을 몇개 사용해봤는데 간혹 가다 스킵이 되는 일이 종종 있었다. 주로 다른 PC에서 작업하느라 아이들 상태일 때 그런 경우가 많다. 저사양 윈도우10 PC라 많은 설정을 꺼버렸는데 설정 문제 때문인지는 모르겠다.


아무튼 음성 알람 기능은 윈도우에 기본으로 내장되어 있는 작업스케줄러를 이용해도 구현되는 비교적 간단한 기능이라는걸 알고 작업스케줄러에 자명종 작업을 등록했더니 스킵되는 일이 없다.



작업스케줄러에서 현재 시간을 일정 간격마다 음성으로 들리게 하려면 다음과 같이 하면 된다.


탐색기를 실행해서 문서 폴더같은 적당한 폴더에서 우클릭 > 새로만들기 > 텍스트 문서 를 만든다.


△ 텍스트 문서를 열어서 아래와 같이 입력한다.

Dim speaks, speech

speaks = "지금 시간은 " & FormatDateTime(time,3) & " 입니다"

Set speech = CreateObject("sapi.spvoice")

speech.Speak speaks

"지금 시간은" - "입니다"  사이에 & FormatDateTime(time,3) & 를 입력하면 된다.

(time,3) 부분에서 숫자 부분은 1에서 4까지 사용할 수 있는데 시간을 알려주는 형식을 지정하는거다.

숫자없이 (time)만 입력해도 되고 '오전/오후 몇시 몇분' 이라고 말하게 하려면 3을 입력하면 됨.


△ 입력 후 다른 이름으로 저장.


파일형식을 모든 파일 로 하고, 파일 이름 뒤에 .vbs 를 입력한다.


vbs 파일을 만들어 놓은 후, 작업표시줄검색을 눌러 '작업' 을 입력해서 작업스케줄러를 실행한다.


작업스케줄러 라이브러리를 누르고 맨 우측에 있는 작업 만들기 를 클릭.


새작업 창이 뜨면 일반에서 적당한 이름을 입력한다.


트리거으로 가서 새로 만들기를 클릭.


트리거 편집에서 위와 같이 작업시작은 '예약상태'/ 설정은 '한번' / 시작은 현재 시간보다 약간 뒤로 지정 / 작업 반복 간격에서 알람 시간 간격을 설정 / 기간은 '무기한'  으로 설정한 후 확인.


△ 그리고 동작에서 새로만들기 를 누르고 새 동작 만들기에서 동작은 '프로그램 시작'으로 놓고 찾아보기를 눌러 만들어놓은 vbs 파일을 선택해주면 된다.


# vbs 파일 실행이 원활하지 않을 때가 가끔 있는 것 같다. 윈도우 보안 기능이 강화되서 그런 것 같은데 시간을 몇초 늦게 말하기도 하고 가끔씩 버벅이기도 한다. 어떤 때는 실행을 실패했는지 건너뛰기도 한다.

vbs 파일 실행을 바로가기로 만들어 직접 vbs를 실행하기보다 다른 프로그램을 거쳐 실행되게하면 버벅임도 없어지고 부드럽게 실행된다.

https://windowsforum.kr/index.php?mid=qna&page=8&document_srl=10640799

위 글을 참조해서 바로가기를 만들면 됨.

△ vbs파일을 우클릭해 바로가기를 만든 후

△만든 바로가기를 우클릭 > '속성'에 들어가 '바로가기탭'에 있는 '대상'에

C:\Windows\System32\wscript.exe "경로\time.vbs"

를 입력하고

'시작 위치'에 wscript.exe 의 경로를 입력해주면 된다.

그리고 작업스케줄러에서 vbs 대신 만든 wscript의 바로가기가 실행되도록 경로를 바꿔주면 됨.


더 자세한 작업스케줄러 사용법은 아래 링크글 참조.

2018/09/10 - [컴퓨터&인터넷] - 윈도우 시작 프로그램 등록하기 2 - 작업스케줄러 사용법



작업스케줄러에서 만들어놓은 작업의 설정을 변경하려면 작업을 우클릭해서 속성에 들어가서 하면 된다.


음성 속도 피치 조절은 내레이터 기능을 활성화 시키지 않으면 적용되지 않는다. 내래이터 기능을 활성화시키면 마우스를 가져가는 곳마다 모든 텍스트를 읽어버리는데 꺼버리면 속도와 피치 조절을 할 수 없게되있다.

내레이터를 꺼버리면 제어판의 음성인식 설정에 들어가 속도(rate/speed)만 조절 가능하다.

제어판 음성인식 기능을 풀활성화시키려면 코타나 등의 음성인식 기능이 지원되는 언어패키지를 다운받아 설치한 후 마이크도 따로 튜닝해야 하는등 약간 번거롭다.


작업표시줄 검색에서 제어판을 입력 > 제어판의 음성인식 > 텍스트 음성 변환 에서 속도를 조절할 수 있음. 

코타나 음성인식 기능을 활성화려고 영어팩을 따로 설치했으면 윈도우 설정의 접근성 > 레이에 들어가서 음성의 속도피치를 듣기 좋게 조정하면 된다.


조정 후 vbs파일을 더블클릭 실행해서 정상적으로 들리는지 테스트해보면 됨.



# 그 외 추가할 수 있는 음성인식 파라미터

with speech

Set .voice = .getvoices.item(0)

.Volume = 100

.Rate = 0

end with

위의 코드를 vbs파일에 추가해서 볼륨과 음성속도 등을 조절할 수 있다.

.Pause = pause speaking

.resume = resume after pause

.Rate = speed of spoken words. The larger number, the faster pitch. 유효값은 -10 에서 10

.Voice = If multiple exist on machine, say Sam and Anna are available, you can set any one.

.Volume = 0~100 %

.WaitUntilDone = wait until done. Voice will wait still all the services loads, i.e. the system is completely ready.

△ 위처럼 set speech 아래에 파라미터를 입력해서 볼륨속도를 조절할 수 있다.

getvoices.item(숫자)에서 0은 현재 기본값인 Haemi 음성이고 1은 영어음성인 Zira임.

영어음성은 한글을 인식하지 못함.


△ 쉼표나 마침표를 입력해서 말하는 간격을 넓히고 또박또박 읽게 할 수 있다. (스페이스바로 한칸 띄우는게 기본 간격임)

철자같은 경우 입니다가 자연스럽게 들리지 않아서 '임'으로 바꿔줬더니 훨씬 자연스럽게 들린다.

속도는 기본값인 0이 무난하다.


# 바탕화면에 메세지 알림창 띄우기

http://orcad.pe.kr/220710535015


# 더 많은 활용법은 아래 링크 참조

How to Make Your Computer Talk to You



+ 윈도우 음성인식 관련 프로그램

2017/11/01 - [컴퓨터&인터넷] - 텍스트 문자를 음성으로 변환하는 프로그램 Balabolka

2017/06/25 - [컴퓨터&인터넷] - [윈도우] 문자를 음성으로 변환하여 읽어주는 기능 활용