Voicemaker.in is an online text-to-speech service with a dead-simple API. This package is just a wrapper around their API.
This is an unofficial package, and is in no way associated to Voicemaker.
The official API documentation is here: https://developer.voicemaker.in/apidocs
The lastest API supported version is the v2.2
.
The only thing you will need is your API token, which you can obtain in the official API documentation page once you log in.
from voicemaker import Voicemaker
vm = Voicemaker()
vm.list_voices(language="en-US")
Which returns an array of dict
elements with the following structure:
[
{
"Engine": "neural",
"VoiceId": "ai1-Joanna",
"VoiceGender": "Female",
"VoiceWebname": "Joanna",
"Country": "US",
"Language": "en-US"
},
...
]
from voicemaker import Voicemaker
vm = Voicemaker()
vm.set_token('<TOKEN>')
vm.generate_audio_url('I met a traveller from an antique land Who said: Two vast and trunkless legs of stone Stand in the desert.')
Returns the URL of the generated voice in MP3 format.
Also accepts the following optional arguments:
text (str): Text to generate an audio from.
engine (str, optional): Choose between 'standard' and 'neutral'. Defaults to 'neural'.
voice_id (str, optional): Uses the selected voice id from the available one for the selected language. Defaults to 'ai3-Jony'.
language_code (str, optional): Language of the target voice. Defaults to 'en-US'.
output_format (str, optional): Choose from 'mp3' and 'wav'. Defaults to 'mp3'.
sample_rate (int, optional): Choose from 48000, 44100, 24000, 22050, 16000, 8000. Defaults to 48000.
effect (str, optional): Effect to give to the voice. Defaults to 'default'.
master_speed (int, optional): Speed from -100 to 100. Defaults to 0.
master_volume (int, optional): Volume of the voice from -100 to 100. Defaults to 0.
master_pitch (int, optional): Pitch of the voice, from -100 to 100. Defaults to 0.
This is a convenience method. It just calles generate_audio_url
, gets the URL, downloads the file and saves it to disk.
from voicemaker import Voicemaker
vm = Voicemaker()
vm.set_token('<TOKEN>')
vm.generate_audio_to_file('test.mp3', 'I met a traveller from an antique land Who said: Two vast and trunkless legs of stone Stand in the desert.')