diff --git a/voice/elevent/elevent_voice.py b/voice/elevent/elevent_voice.py index 40a2aec..15936ab 100644 --- a/voice/elevent/elevent_voice.py +++ b/voice/elevent/elevent_voice.py @@ -1,22 +1,6 @@ -""" -eleventLabs voice service - -["voice_id":"pNInz6obpgDQGcFmaJgB","name":"Adam"] -["voice_id":"ErXwobaYiN019PkySvjV","name":"Antoni"] -["voice_id":"VR6AewLTigWG4xSOukaG","name":"Arnold"] -["voice_id":"EXAVITQu4vr4xnSDxMaL","name":"Bella"] -["voice_id":"AZnzlk1XvdvUeBnXmlld","name":"Domi"] -["voice_id":"MF3mGyEYCl7XYWbV9V6O","name":"Elli"] -["voice_id":"TxGEqnHWrfWFTfGW9XjX","name":"Josh"] -["voice_id":"21m00Tcm4TlvDq8ikWAM","name":"Rachel"] -["voice_id":"yoZ06aMxZJJ28mfd3POQ","name":"Sam"] - -""" - import time -import requests -from elevenlabs import generate +from elevenlabs import set_api_key,generate from bridge.reply import Reply, ReplyType from common.log import logger @@ -25,28 +9,9 @@ from voice.voice import Voice from config import conf XI_API_KEY = conf().get("xi_api_key") +set_api_key(XI_API_KEY) name = conf().get("xi_voice_id") -if name == "Adam": - voice_id = "pNInz6obpgDQGcFmaJgB" -elif name == "Antoni": - voice_id = "ErXwobaYiN019PkySvjV" -elif name == "Arnold": - voice_id = "VR6AewLTigWG4xSOukaG" -elif name == "Bella": - voice_id = "EXAVITQu4vr4xnSDxMaL" -elif name == "Domi": - voice_id = "AZnzlk1XvdvUeBnXmlld" -elif name == "Elli": - voice_id = "MF3mGyEYCl7XYWbV9V6O" -elif name == "Josh": - voice_id = "TxGEqnHWrfWFTfGW9XjX" -elif name == "Rachel": - voice_id = "21m00Tcm4TlvDq8ikWAM" -elif name == "Sam": - voice_id = "yoZ06aMxZJJ28mfd3POQ" - - class ElevenLabsVoice(Voice): def __init__(self): @@ -56,22 +21,11 @@ class ElevenLabsVoice(Voice): pass def textToVoice(self, text): - url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}" - headers = { - "Accept": "audio/mpeg", - "Content-Type": "application/json", - "xi-api-key": XI_API_KEY - } - data = { - "text": text, - "model_id": "eleven_monolingual_v1", - "voice_settings": { - "stability": 0, - "similarity_boost": 0 - } - } - response = requests.post(url, json=data, headers=headers) - audio = response.content + audio = generate( + text=text, + voice=name, + model='eleven_multilingual_v1' + ) fileName = TmpDir().path() + "reply-" + str(int(time.time())) + "-" + str(hash(text) & 0x7FFFFFFF) + ".mp3" with open(fileName, "wb") as f: f.write(audio)