You've already forked Irene-Voice-Assistant
mirror of
https://github.com/janvarev/Irene-Voice-Assistant.git
synced 2025-11-23 22:45:08 +02:00
10.8.0 добавлен Elevenlabs TTS (онлайн)
This commit is contained in:
@@ -59,6 +59,8 @@ _Доп инфа:_
|
||||
|
||||
---
|
||||
|
||||
**plugin_tts_elevenlabs.py** - (онлайн) позволяет озвучивать через онлайн-сервис Elevellabs.
|
||||
|
||||
**plugin_tts_pyttsx.py** - (оффлайн) позволяет делать TTS (Text-To-Speech, озвучку текста) через pyttsx движок. Используется по умолчанию.
|
||||
|
||||
**plugin_tts_console.py** - (оффлайн) заглушка для отладки. Вместо работы TTS просто выводит текст в консоль.
|
||||
|
||||
@@ -18,7 +18,7 @@ def start(core:VACore):
|
||||
"isOnline": "Будут ли выполняться команды плагинов, требующие онлайн",
|
||||
# "ttsIndex": 0,
|
||||
"useTTSCache": "Кешировать озвучку текста (требует больше места на диске, может сбоить при переключении голосов)",
|
||||
"ttsEngineId": "ID основного движка озвучки. Если что-то не работает - попробуйте сменить на pyttsx, vosk или silero_v3 (последний требует полной установки из install - т.е. c torch)",
|
||||
"ttsEngineId": "ID основного движка озвучки. Если что-то не работает - попробуйте сменить на pyttsx, elevenlabs, vosk или silero_v3 (последний требует полной установки из install - т.е. c torch)",
|
||||
"ttsEngineId2": "ID дополнительного движка озвучки. Всегда озвучивает результат на той машине, где запущена Ирина (без веб-интерфейса)", # двиг для прямой озвучки на сервере. Если пуст - используется ttsEngineId
|
||||
"playWavEngineId": "ID движка воспроизведения аудио. Если есть проблемы - попробуйте сменить на audioplayer или sounddevice",
|
||||
"linguaFrancaLang": "Язык для библиотеки lingua-franca конвертирования чисел", # язык для библиотеки lingua-franca конвертирования чисел
|
||||
|
||||
64
plugins/plugin_tts_elevenlabs.py
Normal file
64
plugins/plugin_tts_elevenlabs.py
Normal file
@@ -0,0 +1,64 @@
|
||||
# TTS plugin for Elevenlabs.io
|
||||
# author: Vladislav Janvarev
|
||||
|
||||
|
||||
import os
|
||||
|
||||
from vacore import VACore
|
||||
|
||||
modname = os.path.basename(__file__)[:-3] # calculating modname
|
||||
|
||||
# функция на старте
|
||||
def start(core:VACore):
|
||||
manifest = {
|
||||
"name": "TTS Elevenlabs",
|
||||
"version": "1.0",
|
||||
"require_online": True,
|
||||
|
||||
"default_options": {
|
||||
"speaker": "Bella",
|
||||
"model": "eleven_multilingual_v2",
|
||||
"api_key": "", # not required
|
||||
},
|
||||
|
||||
"tts": {
|
||||
"elevenlabs": (init,None,towavfile) # первая функция инициализации, вторая - говорить
|
||||
}
|
||||
}
|
||||
return manifest
|
||||
|
||||
def start_with_options(core:VACore, manifest:dict):
|
||||
pass
|
||||
|
||||
def init(core:VACore):
|
||||
options = core.plugin_options(modname)
|
||||
import elevenlabs
|
||||
|
||||
|
||||
def towavfile(core:VACore, text_to_speech:str, wavfile:str):
|
||||
|
||||
|
||||
options = core.plugin_options(modname)
|
||||
speaker = options["speaker"]
|
||||
model = options["model"]
|
||||
api_key = options["api_key"]
|
||||
|
||||
from elevenlabs.client import ElevenLabs
|
||||
from elevenlabs import save
|
||||
|
||||
|
||||
el_client:ElevenLabs = None
|
||||
if api_key == "":
|
||||
el_client = ElevenLabs()
|
||||
else:
|
||||
el_client = ElevenLabs(
|
||||
api_key=api_key
|
||||
)
|
||||
|
||||
audio = el_client.generate(
|
||||
text=text_to_speech,
|
||||
voice=speaker,
|
||||
model=model,
|
||||
)
|
||||
# рендерим wav (здесь это будет MP3)
|
||||
save(audio,wavfile)
|
||||
@@ -13,6 +13,9 @@ vosk~=0.3.45
|
||||
vosk-tts~=0.3.52
|
||||
#torch~=2.1.2 #для Silero
|
||||
|
||||
# tts elevenlabs
|
||||
elevenlabs==1.0.3
|
||||
|
||||
# Локальные запись и воспроизведение звука
|
||||
sounddevice~=0.4.3
|
||||
soundfile~=0.10.3.post1
|
||||
|
||||
@@ -13,3 +13,4 @@ python-dateutil~=2.6.0
|
||||
gradio~=3.28.3
|
||||
fsspec==2023.1.0
|
||||
openai==0.28.0
|
||||
elevenlabs==1.0.3
|
||||
|
||||
@@ -13,4 +13,5 @@ uvicorn[standard]
|
||||
gradio~=3.28.3
|
||||
fsspec==2023.1.0
|
||||
openai==0.28.0
|
||||
elevenlabs==1.0.3
|
||||
|
||||
|
||||
Reference in New Issue
Block a user