Browse Source

replace requests with elevenlabs for audio generation

develop
uezhenxiang2023 1 year ago
parent
commit
db4998a56b
1 changed files with 7 additions and 53 deletions
  1. +7
    -53
      voice/elevent/elevent_voice.py

+ 7
- 53
voice/elevent/elevent_voice.py View File

@@ -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)


Loading…
Cancel
Save