Ver Fonte

replace requests with elevenlabs for audio generation

uezhenxiang2023 há 2 anos atrás
pai
commit
db4998a56b
1 ficheiros alterados com 7 adições e 53 exclusões
  1. 7 53
      voice/elevent/elevent_voice.py

+ 7 - 53
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)