lugia19 / elevenlabslib

Full python wrapper for the elevenlabs API.
MIT License
150 stars 27 forks source link

/v1/history/download API endpoint not supported? #5

Closed jonathonbarton closed 1 year ago

jonathonbarton commented 1 year ago

I looked through example.py and ElevenLabsVoice.py and a straightforward way to pass in text, generate audio, then download the resulting (mp3, if I'm reading the elevenlabs and elevenlabslib documentation right) file to a user-specified location.

RIght now, I'm working around it with sequence = "Test." voice = user.get_voices_by_name("whatever voice") # to get the selected voice outfile = 'Drive:/path/to/file/destination/output.mp3' mp3_data = voice.generate_audio_bytes(sequence) with open(outfile, 'wb') as file: file.write(mp3_data) p = vlc.MediaPlayer("Drive:/path/to/file/destination/output.mp3") p.play() # Play the audio as saved to disk with VLC to hear how it would sound in the app, instead of hearing the audio direct to the sound device from Eleven.

I find that audio heard direct from Eleven via generate_and_play_audio(sequence) is perfect, but what's landing on the disk is cut off near to the end. And it's not that it's cut off after x miliseconds (i.e. not giving it enough time to write the file to disk) It's that there's a fixed amount missing from the end of the file, not matter how long the text passed in is...

Is there an existing method that I missed that does what I'm looking for? Is this a method you could add to the library to "complete the AI-enhanced gameplay loop" of SpeechRecognition -> GPT/ChatGPT -> ElevenLabs -> Local MP3 that a plugin for a game that expects sound to be MP3 or WAV locally on the disk?

EDIT: Doing more testing today - this may be resolved? It'd still be cool to have the option of: generate_and_save_audio( self, prompt:str, playInBackground:bool, portaudioDeviceID:Optional[int] = None, stability:Optional[float]=None, similarity_boost:Optional[float]=None, saveToPath:Optional[str]=None, saveAsWav:bool ) -> None:

lugia19 commented 1 year ago

Added a function to save to disk in helpers.py in the latest commit.