faiss_rag_enterprise/llama_index/tts/elevenlabs.py

49 lines
1.2 KiB
Python

"""ElevenLabs TTS."""
from typing import Any, Optional
from llama_index.tts.base import BaseTTS
class ElevenLabsTTS(BaseTTS):
"""ElevenLabs TTS.
Args:
api_key (Optional[str]): API key for ElevenLabs TTS.
"""
def __init__(self, api_key: Optional[str] = None) -> None:
super().__init__()
self.api_key = api_key
def generate_audio(self, text: str, voice: Optional[str] = None) -> Any:
"""Generate audio.
NOTE: return type is Any, but it should be any object that can be fed
as `data` into IPython.display.Audio(). This includes numpy array, list,
unicode, str or bytes
Args:
text (str): text to be turned into audio.
voice (Optional[str]): voice in which audio is generated.
"""
import_err_msg = "`elevenlabs` package not found, \
please run `pip install elevenlabs`"
try:
import elevenlabs
except ImportError:
raise ImportError(import_err_msg)
if self.api_key:
elevenlabs.set_api_key(self.api_key)
if voice:
audio = elevenlabs.generate(text, voice=voice)
else:
audio = elevenlabs.generate(text)
return audio