2025. 2. 26. 10:07ㆍAI이야기
소개
AI 음성 생성은 이제 다양한 분야에서 활용되고 있습니다. 그 중 ElevenLabs API를 사용하여 텍스트를 음성으로 변환하는 방법은 매우 간단하며 강력한 기능을 제공합니다. 이번 글에서는 ElevenLabs API의 활용법과 파이썬을 이용한 TTS(텍스트 음성 변환) 예제 코드에 대해 자세히 알아보겠습니다.
1. ElevenLabs API 키 발급 방법
ElevenLabs API를 사용하려면 먼저 API 키를 발급받아야 합니다. 아래의 링크를 통해 API 키를 발급받을 수 있습니다:
- 로그인 후 API 키 발급: ElevenLabs 계정에 로그인 후, API Keys 탭에서 Generate API Key 버튼을 클릭하여 API 키를 생성합니다.
- API 키 보안 관리: 발급된 API 키는 민감한 정보이므로 외부에 유출되지 않도록 주의해야 합니다.
2. 필수 환경 설정 (ffmpeg 설치)
ffmpeg는 음성을 처리하는 데 필수적인 도구입니다. 텍스트를 음성으로 변환하거나, 음성 파일을 다양한 형식으로 변환할 때 사용됩니다. 이를 위해 ffmpeg를 설치해야 합니다.
- ffmpeg 다운로드에서 Windows용 빌드를 다운로드합니다.
- 다운로드 후, ffmpeg 실행 파일을 PATH 환경 변수에 추가하여 전역적으로 사용할 수 있게 설정합니다.
대체 방법: GitHub에서 MPV 빌드를 다운로드하여 설치할 수도 있습니다.
3. 파이썬 설치 라이브러리
ElevenLabs API를 사용하려면 먼저 파이썬 환경에서 elevenlabs 라이브러리를 설치해야 합니다. 아래 명령어를 통해 설치할 수 있습니다:
pip install elevenlabs
이 라이브러리를 통해 텍스트를 음성으로 변환하거나 AI 음성을 생성할 수 있습니다.
4. ElevenLabs API를 사용한 텍스트 음성 변환(TTS) 예제
다음은 파이썬 코드에서 ElevenLabs API를 사용하여 텍스트를 음성으로 변환하는 예제입니다. 아래 코드를 통해 원하는 텍스트를 음성 파일로 변환할 수 있습니다.
from elevenlabs import ElevenLabs, VoiceSettings
from typing import IO
from io import BytesIO
class MakeTTSMain:
def __init__(self):
print(f" _____________ INIT _____________")
self.client = ElevenLabs(api_key="사용자의API키")
# 텍스트를 음성으로 변환
returnVal = self.TextToSpeech("제목을 입력하세요.")
print(returnVal)
def TextToSpeech(self, text):
try:
response = self.client.text_to_speech.convert(
voice_id="AW5wrnG1jVizOYY7R1Oo", # Adam pre-made voice
output_format="mp3_22050_32",
text=text,
model_id="eleven_multilingual_v2", # Use multilingual model for better results
voice_settings=VoiceSettings(
stability=0.0,
similarity_boost=1.0,
style=0.0,
use_speaker_boost=True,
),
)
save_file_path = f"./MP3/{text}.mp3"
with open(save_file_path, "wb") as f:
for chunk in response:
if chunk:
f.write(chunk)
print(f"{save_file_path}: A new audio file was saved successfully!")
return save_file_path
except Exception as e:
print(f" ____________ ERROR TextToSpeech ______________ {e}")
위 코드에서는 ElevenLabs API의 text_to_speech.convert() 메서드를 사용하여 텍스트를 음성 파일로 변환합니다. 변환된 음성은 MP3 파일로 저장됩니다.
5. 목소리 설정 및 Voice ID 확인 방법
ElevenLabs API는 다양한 음성을 제공합니다. 예를 들어, voice_id를 변경하여 남성 또는 여성 목소리로 음성을 변환할 수 있습니다. 원하는 음성 ID를 Voice Lab에서 확인하고 해당 ID를 코드에 적용할 수 있습니다.
- Voice ID 확인 방법:
- Voice Lab에서 다양한 음성을 시험해보고, 원하는 음성의 ID를 복사합니다.
- 복사한 voice_id를 파이썬 코드에 적용하여 음성을 설정합니다
- 아래 이미지 확인(https://elevenlabs.io/app/voice-lab)
Free Text to Speech & AI Voice Generator | ElevenLabs
Create the most realistic speech with our AI audio tools in 1000s of voices and 32 languages. Easy to use API's and SDK's. Scalable, secure, and customizable voice solutions tailored for enterprise needs. Pioneering research in Text to Speech and AI Voice
elevenlabs.io
response = self.client.text_to_speech.convert(
voice_id="AW5wrnG1jVizOYY7R1Oo", # Adam pre-made voice
output_format="mp3_22050_32",
text=text,
# model_id="eleven_turbo_v2_5", # use the turbo model for low latency
model_id="eleven_multilingual_v2", # use the turbo model for low latency
voice_settings=VoiceSettings(
stability=0.0,
similarity_boost=1.0,
style=0.0,
use_speaker_boost=True,
),
)
고정된 목소리만이 아닌 남성과 여성을 변경 및 조정할 수 있습니다.
stability: 음성의 안정성을 조정합니다. 값이 높을수록 더 안정적인 음성이 생성될 수 있습니다.
similarity_boost: 입력 텍스트와 음성의 유사성을 높이는 데 사용됩니다. 값이 높을수록 더 유사한 음성이 생성됩니다.
style: 음성의 스타일을 조정합니다. 특정 스타일을 원할 경우 이 값을 조정합니다.
use_speaker_boost: 특정 스피커의 음성을 강조할지 여부를 설정합니다.
6. 결론
이번 글에서는 ElevenLabs API를 사용하여 **텍스트 음성 변환(TTS)**을 구현하는 방법을 살펴보았습니다. API 키 발급부터 ffmpeg 설정, 파이썬 예제 코드까지 하나씩 설명드렸습니다. 또한, Voice Lab에서 음성 ID를 확인하여 다양한 목소리로 음성을 생성할 수 있음을 보여드렸습니다.
ElevenLabs API는 다양한 음성 생성 기능을 제공하므로, 여러분의 프로젝트에서 AI 음성을 손쉽게 구현할 수 있습니다.
Free Text to Speech & AI Voice Generator | ElevenLabs
Create the most realistic speech with our AI audio tools in 1000s of voices and 32 languages. Easy to use API's and SDK's. Scalable, secure, and customizable voice solutions tailored for enterprise needs. Pioneering research in Text to Speech and AI Voice
elevenlabs.io
'AI이야기' 카테고리의 다른 글
[AI] Mureka.ai: AI 기반 음악 작곡 플랫폼의 장점과 한계 (0) | 2025.02.26 |
---|---|
[AI] Vidu AI의 기능과 활용, 그리고 장점과 단점 (0) | 2025.02.26 |
[AI] 드리미나 (3) | 2025.02.25 |
[AI] 일레븐랩스 (0) | 2025.02.25 |
[AI] 미드저니 (0) | 2025.02.25 |