Browse Source

Merge pull request #1871 from cgnannan/master

修复 Issues #1868提到的elevenlabs sdk更新问题
master
zhayujie GitHub 7 months ago
parent
commit
c662fa4c63
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 7 deletions
  1. +1
    -0
      requirements-optional.txt
  2. +6
    -7
      voice/elevent/elevent_voice.py

+ 1
- 0
requirements-optional.txt View File

@@ -10,6 +10,7 @@ azure-cognitiveservices-speech # azure voice
edge-tts # edge-tts edge-tts # edge-tts
numpy<=1.24.2 numpy<=1.24.2
langid # language detect langid # language detect
elevenlabs==1.0.3 # elevenlabs TTS


#install plugin #install plugin
dulwich dulwich


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

@@ -1,7 +1,7 @@
import time import time


from elevenlabs import set_api_key,generate
from elevenlabs.client import ElevenLabs
from elevenlabs import save
from bridge.reply import Reply, ReplyType from bridge.reply import Reply, ReplyType
from common.log import logger from common.log import logger
from common.tmp_dir import TmpDir from common.tmp_dir import TmpDir
@@ -9,7 +9,7 @@ from voice.voice import Voice
from config import conf from config import conf


XI_API_KEY = conf().get("xi_api_key") XI_API_KEY = conf().get("xi_api_key")
set_api_key(XI_API_KEY)
client = ElevenLabs(api_key=XI_API_KEY)
name = conf().get("xi_voice_id") name = conf().get("xi_voice_id")


class ElevenLabsVoice(Voice): class ElevenLabsVoice(Voice):
@@ -21,13 +21,12 @@ class ElevenLabsVoice(Voice):
pass pass


def textToVoice(self, text): def textToVoice(self, text):
audio = generate(
audio = client.generate(
text=text, text=text,
voice=name, voice=name,
model='eleven_multilingual_v1'
model='eleven_multilingual_v2'
) )
fileName = TmpDir().path() + "reply-" + str(int(time.time())) + "-" + str(hash(text) & 0x7FFFFFFF) + ".mp3" fileName = TmpDir().path() + "reply-" + str(int(time.time())) + "-" + str(hash(text) & 0x7FFFFFFF) + ".mp3"
with open(fileName, "wb") as f:
f.write(audio)
save(audio, fileName)
logger.info("[ElevenLabs] textToVoice text={} voice file name={}".format(text, fileName)) logger.info("[ElevenLabs] textToVoice text={} voice file name={}".format(text, fileName))
return Reply(ReplyType.VOICE, fileName) return Reply(ReplyType.VOICE, fileName)

Loading…
Cancel
Save