import os from elevenlabs import generate, play from elevenlabs import set_api_key from elevenlabs import generate, stream class SpeechService: def __init__(self, voice_id="Bella", model_id="eleven_monolingual_v1"): account_sid = os.environ["ELEVENLABS_API_KEY"] set_api_key(account_sid) self._voice_id = voice_id self._model_id = model_id # def print_models(self): # models = generate() # for model in models: # print (model["id"], model["name"]) def print_voices(self): from elevenlabs.api import Voices voices = Voices.from_api() for voice in voices: print (voice) def speak(self, prompt): # audio = generate( # text=prompt, # voice=self._voice_id, # model=self._model_id, # ) # play(audio) audio_stream = generate( text=prompt, voice=self._voice_id, model=self._model_id, stream=True ) # stream(audio_stream) audio = b"" for chunk in audio_stream: if chunk is not None: audio += chunk # play(chunk) play(audio) return