텍스트 음성 변환(Text-to-Speech, TTS) 기술은 입력된 텍스트를 자연스러운 음성으로 변환하는 기법으로, 다양한 분야에서 활용되고 있습니다. 특히, pyttsx3는 오프라인에서 사용할 수 있는 강력한 TTS 라이브러리로, 여러 운영체제에서 호환이 가능하여 많은 사용자들에게 인기를 끌고 있습니다.
이번 글에서는 pyttsx3의 설치와 사용법, 그리고 이를 활용한 다양한 응용 사례에 대해 자세히 알아보겠습니다.
![]()
pyttsx3 소개

pyttsx3는 파이썬에서 사용할 수 있는 TTS 라이브러리입니다. 이 라이브러리는 여러 TTS 엔진을 지원하며, 사용자가 원하는 음성의 속도, 볼륨, 음조 등을 조절할 수 있는 기능을 제공합니다.
특히, pyttsx3는 오프라인에서도 작동하기 때문에 인터넷 연결이 필요 없는 환경에서도 유용하게 사용될 수 있습니다. 아래 표는 pyttsx3의 주요 기능을 정리한 것입니다.
| 기능 | 설명 |
|---|---|
| 오프라인 사용 | 인터넷 연결 없이도 텍스트 음성을 생성할 수 있습니다. |
| 다양한 엔진 지원 | SAPI5, NSSpeech 등 여러 TTS 엔진을 사용할 수 있습니다. |
| 플랫폼 호환성 | Windows, macOS, Linux 등 다양한 운영체제에서 작동합니다. |
| 사용자 설정 가능 | 음성 속도, 볼륨, 음조 등을 사용자가 조정할 수 있습니다. |
pyttsx3의 가장 큰 장점은 사용자 친화적인 API와 직관적인 사용법입니다. 이를 통해 프로그래밍 경험이 많지 않은 사용자도 쉽게 텍스트를 음성으로 변환할 수 있습니다.
pyttsx3 설치 방법

pyttsx3를 사용하기 위해서는 먼저 라이브러리를 설치해야 합니다. 파이썬의 패키지 관리자인 pip를 통해 간단하게 설치할 수 있습니다.
아래의 명령어를 통해 설치하실 수 있습니다.
bash
pip install pyttsx3
설치가 완료되면, 아래의 코드 예제를 통해 pyttsx3를 사용한 간단한 텍스트 음성 변환 프로그램을 만들어 보겠습니다.
“`python
import pyttsx3
engine = pyttsx3.init()
text = “안녕하세요. pyttsx3를 사용한 텍스트 음성 변환입니다.”
engine.say(text)
engine.runAndWait()
“`
위 코드는 pyttsx3 라이브러리를 사용하여 입력된 텍스트를 음성으로 변환하는 간단한 예제입니다. engine.say() 메서드를 사용하여 변환할 텍스트를 지정하고, engine.runAndWait() 메서드를 호출하여 음성을 출력합니다.
아래 표는 pyttsx3의 설치 및 사용 과정에서 주요 메서드를 정리한 것입니다.
| 메서드 | 설명 |
|---|---|
init() |
pyttsx3 엔진을 초기화합니다. |
say(text) |
입력된 텍스트를 음성으로 변환합니다. |
runAndWait() |
음성을 출력하고, 대기 상태로 전환합니다. |
setProperty() |
음성의 속도, 볼륨 등을 설정합니다. |
음성 속성 설정하기

pyttsx3에서는 음성 속성에 대한 세부 설정이 가능합니다. 사용자는 음성의 속도, 볼륨, 음조 등을 조정하여 원하는 음성을 만들 수 있습니다.
예를 들어, 음성의 속도를 변경하려면 setProperty() 메서드를 사용할 수 있습니다. 아래의 코드 예제를 통해 음성의 속도와 볼륨을 설정하는 방법을 알아보겠습니다.
“`python
import pyttsx3
engine = pyttsx3.init()
engine.setProperty(‘rate’, 150) # 기본 속도는 200입니다.
engine.setProperty(‘volume’, 0.9) # 볼륨은 0.0부터 1.0까지 설정할 수 있습니다.
text = “안녕하세요. 음성 속도와 볼륨을 조정한 예제입니다.”
engine.say(text)
engine.runAndWait()
“`
위 코드에서 setProperty('rate', 150)을 통해 음성 속도를 150으로 설정하였고, setProperty('volume', 0.9)를 통해 볼륨을 90%로 설정하였습니다. 이를 통해 사용자는 음성을 더욱 개인화할 수 있습니다.
아래 표는 pyttsx3에서 설정할 수 있는 주요 음성 속성을 정리한 것입니다.
| 속성 | 설명 |
|---|---|
rate |
음성의 속도를 설정합니다. |
volume |
음성의 볼륨을 설정합니다. |
voice |
사용할 음성을 설정합니다. (남성, 여성 등) |
다양한 음성 사용하기
pyttsx3는 기본적으로 여러 음성을 지원합니다. 각 운영체제별로 제공되는 음성의 종류가 다르기 때문에, 사용자는 사용할 수 있는 음성을 확인하고 선택할 수 있습니다.
이를 위해 engine.getProperty('voices') 메서드를 사용하여 시스템에서 사용 가능한 음성 목록을 가져올 수 있습니다. 아래의 코드 예제를 통해 사용 가능한 음성을 나열하고, 특정 음성을 선택하는 방법을 살펴보겠습니다.
“`python
import pyttsx3
engine = pyttsx3.init()
voices = engine.getProperty(‘voices’)
for index, voice in enumerate(voices):
print(f”Voice {index}: {voice.name}”)
engine.setProperty(‘voice’, voices[0].id)
text = “안녕하세요. 선택한 음성으로 변환된 텍스트입니다.”
engine.say(text)
engine.runAndWait()
“`
위 코드는 사용 가능한 음성을 나열한 후, 첫 번째 음성을 선택하여 텍스트를 음성으로 변환하는 예제입니다. 사용자는 출력된 음성 목록을 보고 원하는 음성을 선택할 수 있습니다.
아래 표는 pyttsx3에서 지원하는 음성의 속성을 정리한 것입니다.
| 속성 | 설명 |
|---|---|
id |
음성의 고유 ID입니다. |
name |
음성의 이름입니다. |
languages |
음성이 지원하는 언어 목록입니다. |
응용 사례
pyttsx3는 다양한 분야에 활용될 수 있습니다. 예를 들어, 교육 분야에서는 텍스트 자료를 음성으로 변환하여 학습자의 이해를 돕는 데 사용될 수 있으며, 접근성 기능을 통해 시각 장애인을 위한 도구로 활용될 수 있습니다.
또한, 소프트웨어 애플리케이션에서 사용자와 상호작용하기 위해 음성을 활용하는 경우에도 유용합니다. 아래의 표는 pyttsx3의 다양한 응용 사례를 정리한 것입니다.
| 분야 | 응용 사례 |
|---|---|
| 교육 | 텍스트 자료를 음성으로 변환하여 학습 지원 |
| 접근성 | 시각 장애인을 위한 음성 안내 시스템 구축 |
| 소프트웨어 | 사용자 인터페이스에서 음성 피드백 제공 |
| 오디오북 | 텍스트 기반 콘텐츠를 음성으로 변환하여 제공 |
이처럼 pyttsx3는 다양한 분야에서 활용될 수 있는 매우 유용한 TTS 라이브러리입니다. 사용자는 간단한 코드로 원하는 음성을 생성할 수 있으며, 개인의 필요에 맞춰 쉽게 조정할 수 있습니다.
TTS 기술은 앞으로도 계속 발전할 것이며, pyttsx3와 같은 도구는 이러한 변화를 이끌어 나가는 중요한 역할을 할 것입니다.
결론
pyttsx3는 파이썬을 기반으로 한 텍스트 음성 변환 라이브러리로, 오프라인에서도 사용할 수 있는 점에서 큰 장점을 가지고 있습니다. 다양한 음성을 지원하고, 사용자 설정이 가능하여 개인의 필요에 맞게 활용할 수 있습니다.
교육, 접근성, 소프트웨어 개발 등 다양한 분야에서 활용될 수 있는 pyttsx3는 앞으로도 많은 사람들에게 유용한 도구가 될 것입니다. 이러한 TTS 기술을 통해 정보 전달의 방식이 더욱 다양해지고, 많은 사람들에게 도움을 줄 수 있기를 기대합니다.