메뉴

VocSpeak

Sub

텍스트를 지정한 언어의 음성으로 읽어 주는 VBA 명령문입니다.

VocSpeak 코드 미리보기
구문 VocSpeak 텍스트, 사용언어, [강제종료]
인수구분 형식 설명
텍스트 선택 Variant
음성으로 변환할 텍스트로, 사용언어가 읽을 수 있는 텍스트여야 합니다.
예를 들어 텍스트에 한글 "사과"를 넣고 사용언어를 "English"로 지정하면 음성 변환을 할 수 없습니다.
사용언어 선택 String
텍스트를 읽어 줄 대상 언어이며, 반드시 영문으로 입력합니다.
예를 들어 한국어는 "Korean", 중국어는 "Chinese"로 입력하며, "Zira" 처럼 목소리 이름을 입력해 특정 인물의 목소리를 지정할 수도 있습니다.
강제종료 선택 Boolean
TRUE일 경우 현재 실행 중인 SAPI Voice TTS를 강제 종료합니다. 기본값은 FALSE 입니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · VocSpeak
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ VocSpeak 함수
'▶ 단어를 특정 언어로 읽어주는 텍스트 음성 변환 함수입니다.
'▶ 인수 설명
'_____________Voca : 음성 변환 할 텍스트입니다.
'_____________Language : 텍스트를 읽을 대상 언어입니다. 사용중인 PC에 해당 언어팩이 설치되어 있어야 합니다.
'###############################################################
Public Voc As Object
Sub VocSpeak(Optional Voca As Variant, Optional Language As String, Optional blnStop As Boolean = False)
' 변수 생성
If IsMissing(Voca) Then Voca = ""
Set Voc = CreateObject("SAPI.SpVoice")
' 가용한 음성 변환 목록을 하나씩 돌아가며 사용 언어와 일치하는 항목이 있는지 확인
For i = 0 To Voc.GetVoices.Count - 1
Set Voc.Voice = Voc.GetVoices.Item(i)
If InStr(1, Voc.Voice.GetDescription, Language) Then GoTo Speak
Next
'일치하는 항목이 없을 경우 안내메시지 띄우고 함수 종료
MsgBox "음성 변환 할 언어가 PC에 설치되어 있지 않습니다.", vbInformation, "오빠두엑셀 - 오류안내"
Exit Sub
' 가용한 음성 변환 항목이 있을 시 음성 변환 후 명령문을 종료합니다.
Speak:
Voc.Speak Voca, 1
If blnStop = True Then Voc.Speak "", 0
End Sub

활용 예제

PC가 지원하는 첫 번째 영어 음성으로 변환
Sub Test()
'PC에서 지원하는 첫번째 영어 음성변환 기능으로 텍스트 음성 변환 합니다.
VocSpeak "Apple", "English"
End Sub
영어 단어를 여자 목소리로 변환
Sub Test2()
' 영어 단어를 여성 목소리로 음성 변환합니다.
VocSpeak "Apple", "Zira"
End Sub

안내사항

음성 변환 기능을 사용하려면 PC에 해당 언어팩이 설치되어 있어야 합니다.
현재 PC에서 사용 가능한 음성 목록은 GetVocList 함수로 확인할 수 있습니다.
댓글 1
5 (1개 평가)
강민준🤗
강민준🤗 2024.08.11 13:11
좋은 자료 감사합니다.🙇‍♂️

로그인

처음이면 카카오·네이버로 계속하면 바로 가입돼요

또는
비밀번호 찾기
Caps Lock이 켜져 있습니다
스크랩 완료