- https://elevenlabs.io/docs/developer-guides
- Overview
- Quickstart
- Specifying Server Location
- Using the closest servers (디폴트) : "api.elevenlabs.io" 으로 요청하면, 자동으로 가까운 서버에 라우팅 함.
- Manually specifying the server location :
- client library 옵션에서 environment 을 쓰거나...
- "api.us.elevenlabs.io" 식으로 요청 하거나...
- Reducing Latency
- 1) "eleven_turbo_v2_5" 모델이 속도면에서 최적화 되있음.
- 2) TTS endpoints 는 '레귤러', '스트리밍', '웹소켓' 3가지가 있는데~
- '레귤러'는 파일 다 만든뒤 리턴,
- '스트리밍'은 첫 바이트부터 바로 리턴!
- '웹소켓'은 ...
- 3) LLM 스트림 출력을 TTS 적용하는경우, 웹소켓을 활용하면 Speech 가 만들어지는 동안에도 Text 를 줄수있다.
- LLM 스트림의 Chunk 를 잘게 쪼게서 주면 -> 해당 처리가 더 빠르게 렌더링 되는 식이라~
- 단어 단위로 주는게 좋다. (model&tooling 이 맥락을 활용해서, 문장구조가 유지된 오디오 생성이 된다함 ㄷㄷ)
- 4) "Enterprise plan" 는 렌더링 MQ 최우선 순위를 받아, 모델 사용 부하에 관계없이 항상 가능한 가장 낮은 지연 시간을 경험할수있!
- --# 빠직!
- 5) Default Voice > Synthetic Voice & Instant Voice Clone > Professional Voice Clone
- 6) 웹소켓을 통해 스트리밍 할 때, HTTPS Sessions 을 재사용 하기.
- SSL/TLS 세션을 재사용하면, 핸드셰이크 건너뛰니 대기시간이 줄어듬임.
- 단, 첫 번째 세션 이후부터의 요청에 대한 대기 시간이 개선되는거 겠죠... ㅎㅎ;
- 즉, 웹소켓 경우 WSS 프로토콜을 활용! 연결시 매번 SSL/TLS 오버해드 발생하니
- 기존 연결을 닫고/여는 횟수를 줄이는것이 좋타는 것이다. ㅎㅎ
- 7) 미국 외부에서 통신하는 경우... 네트워크 라우팅이 증가하여 좀더 지연 될 수 있 다...
- Models
- Text to Speech
- How to use text to speech with streaming
- ...
- How to use text-to-speech with websocket streaming
- ...
- Combine Multiple Generations
- Stitching : 복수개의 텍스트를 각각 보내다 보면... 음조가 확 튈수 있어서~ 앞뒤 컨텍스트를 맞춰주도록 하는 작업.
- previous_text, next_text : 해당 텍스트 음성이 생성되지 않았다면 이거라도 적용.
- previous_request_ids, next_request_ids : 해당 텍스트 음성이 생성되었다면 이게 더 좋음. (순서맞춰서)
- _text, _id 전부다 채워서 보내면, 제일 효과적 이라고 한다.
- _id 가 틀려도 오류가 나지는 않고, 2시간 이상 오래되면 별로임. 또 스트리밍시에 해당 완성이 되야 활용가능.
- Stitching 작동 방식은 사용된 모델, 음성, 음성설정에 따라 크게 다릅니다.
- 개인정보 보호 요구사항이 높은 기업은 Stitching 을 못쓴다고 생각해라. (모든 기록을 못하게 되니)
- How to Use Pronunciation Dictionaries
- Integrating with Twilio
- How to use text to speech with streaming
- Text to Sound Effects
- How to use text to effects
- Dubbing
- How to dub video and audio
- https://github.com/elevenlabs/elevenlabs-examples
- https://elevenlabs.io/docs/api-reference
- [Websockets]
- ...
- [Text To Speech]
- 생성시간 = 300ms + 네트워크 Latency (터보모델 기준, at 128kbps)
- 단일요청Limit = 최대 10,000자(10분 분량의 오디오) , 동시요청Limit = Starter:3 Creator:5 Pro:10
- Query Parameters
- enable_logging : false 이면 -> 개인정보 보호 모드 -> 모든기록X -> Stitching 기능X
- output_format : 디폴트 mp3_44100_128
- mp3_22050_32 ~ mp3_44100_192 (44.1kHz , 192kbps)
- pcm_16000 ~ pcm_44100 (S16LE , 44.1kHz)
- ulaw_8000 (μ-law , 8kHz)
- Body
- language_code : 모델에 언어(ISO 639-1) 를 적용하는데, Turbo v2.5 만 지원함. 예) en, ko, ja, ...
- voice_settings :
- stability : 안정성
- similarity_boost : 유사성
- style :
- use_speaker_boost :
- pronunciation_dictionary_locators :
- pronunciation_dictionary_id
- version_id
- seed : 명시할 경우, 결정론적으로 동일한 결과를 만드는데 노력. (보장하지는 않음)
- previous_text, next_text
- previous_request_ids, next_request_ids
- [...]
- ...
- https://github.com/elevenlabs/elevenlabs-python
-끝-
'AI' 카테고리의 다른 글
Elevenlabs Docs (conv ai) (0) | 2024.12.08 |
---|---|
Lang🦜 (feat. teddynote) (0) | 2024.10.24 |
ElevenLabs Docs (0) | 2024.09.25 |
OpenAI Cookbook (0) | 2024.05.25 |
OpenAI Doc2 (0) | 2024.05.25 |