TorToiSe 고급 사용 — 설정과 Tortoise-detect
TorToiSe 고급 사용 — 설정과 Tortoise-detect
Tortoise는 autoregressive 디코더와 diffusion 모델을 결합한 구조라 다루기 까다로워요. 하지만 저자가 많은 설정을 "사용자 편의용"으로 추상화했기 때문에, 프롬프트 엔지니어링처럼 재미있는 활용법도 생겼어요.
출처: https://raw.githubusercontent.com/neonbjb/tortoise-tts/master/Advanced_Usage.md
프롬프트 엔지니어링
Tortoise로도 프롬프트 엔지니어링이 가능해요. 예를 들어 텍스트 앞에 "I am really sad,"를 넣으면 슬픈 감정을 끌어낼 수 있어요. 저자가 만든 자동 삭제(redaction) 시스템을 이용하면, 대괄호로 감싼 텍스트는 말하지 않게 처리할 수 있어요. 예를 들어 "[I am really sad,] Please feed me."는 "Please feed me"만 슬픈 어조로 말해요.
API 사용
한 줄 재생성 API를 쓰려면 tts.tts_with_preset을 호출해요.
reference_clips = [utils.audio.load_audio(p, 22050) for p in clips_paths]
tts = api.TextToSpeech(half=True)
pcm_audio = tts.tts_with_preset("your text here", voice_samples=reference_clips, preset='fast')
더 빠른 실행을 원하면 세 가지 설정을 함께 써요.
reference_clips = [utils.audio.load_audio(p, 22050) for p in clips_paths]
tts = api.TextToSpeech(use_deepspeed=True, kv_cache=True, half=True)
pcm_audio = tts.tts_with_preset("your text here", voice_samples=reference_clips, preset='fast')
Tortoise-detect
모델 오용 우려 때문에, 오디오가 Tortoise에서 나왔을 가능성을 판정하는 분류기를 함께 만들어 제공해요. 어느 컴퓨터에서든 다음처럼 실행할 수 있어요.
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
모델 아키텍처
Tortoise TTS는 OpenAI의 DALL-E에서 영감을 받아 음성 데이터에 적용하고 더 나은 디코더를 쓴 구조예요. 5개의 별도 모델이 함께 동작해요.
학습과 윤리
약 5만 시간의 음성 데이터로 학습했고, 주로 오디오북 데이터로 이뤄져 있어서 소수 목소리나 강한 억양 화자의 목소리 생성이 특히 약해요. 보이스 클로닝의 윤리적 오용 가능성도 저자가 직접 경고하는 부분이에요.