2021-12-14 12:51:47 +03:00
|
|
|
# TTS plugin for pyttsx3 engine
|
|
|
|
|
# author: Vladislav Janvarev
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
|
|
2021-12-15 12:53:52 +03:00
|
|
|
from vacore import VACore
|
2021-12-14 12:51:47 +03:00
|
|
|
import pyttsx3
|
|
|
|
|
|
|
|
|
|
modname = os.path.basename(__file__)[:-3] # calculating modname
|
|
|
|
|
|
|
|
|
|
# функция на старте
|
2021-12-15 12:53:52 +03:00
|
|
|
def start(core:VACore):
|
2021-12-14 12:51:47 +03:00
|
|
|
manifest = {
|
|
|
|
|
"name": "TTS pyttsx",
|
|
|
|
|
"version": "1.0",
|
|
|
|
|
"require_online": False,
|
|
|
|
|
|
|
|
|
|
"default_options": {
|
|
|
|
|
"sysId": 0, # id голоса в системе, может варьироваться
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
"tts": {
|
|
|
|
|
"pyttsx": (init,say) # первая функция инициализации, вторая - говорить
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return manifest
|
|
|
|
|
|
2021-12-15 12:53:52 +03:00
|
|
|
def start_with_options(core:VACore, manifest:dict):
|
2021-12-14 12:51:47 +03:00
|
|
|
pass
|
|
|
|
|
|
2021-12-15 12:53:52 +03:00
|
|
|
def init(core:VACore):
|
2021-12-14 12:51:47 +03:00
|
|
|
options = core.plugin_options(modname)
|
|
|
|
|
|
|
|
|
|
core.ttsEngine = pyttsx3.init()
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
Установка голоса по умолчанию (индекс может меняться в зависимости от настроек операционной системы)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
voices = core.ttsEngine.getProperty("voices")
|
|
|
|
|
#print(voices[0].id)
|
|
|
|
|
|
|
|
|
|
# if assistant.speech_language == "en":
|
|
|
|
|
# assistant.recognition_language = "en-US"
|
|
|
|
|
# if assistant.sex == "female":
|
|
|
|
|
# # Microsoft Zira Desktop - English (United States)
|
|
|
|
|
# ttsEngine.setProperty("voice", voices[1].id)
|
|
|
|
|
# else:
|
|
|
|
|
# # Microsoft David Desktop - English (United States)
|
|
|
|
|
# ttsEngine.setProperty("voice", voices[2].id)
|
|
|
|
|
# else:
|
|
|
|
|
# assistant.recognition_language = "ru-RU"
|
|
|
|
|
|
|
|
|
|
# Microsoft Irina Desktop - Russian
|
|
|
|
|
core.ttsEngine.setProperty("voice", voices[options["sysId"]].id)
|
|
|
|
|
core.ttsEngine.setProperty("volume", 1.0)
|
|
|
|
|
|
2021-12-15 12:53:52 +03:00
|
|
|
def say(core:VACore, text_to_speech:str):
|
2021-12-14 12:51:47 +03:00
|
|
|
"""
|
|
|
|
|
Проигрывание речи ответов голосового ассистента (без сохранения аудио)
|
|
|
|
|
:param text_to_speech: текст, который нужно преобразовать в речь
|
|
|
|
|
"""
|
|
|
|
|
core.ttsEngine.say(str(text_to_speech))
|
|
|
|
|
core.ttsEngine.runAndWait()
|