1
0
mirror of https://github.com/janvarev/Irene-Voice-Assistant.git synced 2025-11-23 22:45:08 +02:00
Files
Irene-Voice-Assistant/plugins/plugin_tts_pyttsx.py

74 lines
2.6 KiB
Python
Raw Normal View History

2021-12-14 12:51:47 +03:00
# TTS plugin for pyttsx3 engine
# author: Vladislav Janvarev
import os
from vacore import VACore
2021-12-14 12:51:47 +03:00
import pyttsx3
modname = os.path.basename(__file__)[:-3] # calculating modname
# функция на старте
def start(core:VACore):
2021-12-14 12:51:47 +03:00
manifest = {
"name": "TTS pyttsx",
"version": "1.1",
2021-12-14 12:51:47 +03:00
"require_online": False,
"default_options": {
"sysId": 0, # id голоса в системе, может варьироваться
},
"tts": {
"pyttsx": (init,say,towavfile) # первая функция инициализации, вторая - говорить, третья - в wav file
# если вторая - None, то используется 3-я с проигрыванием файла
2021-12-14 12:51:47 +03:00
}
}
return manifest
def start_with_options(core:VACore, manifest:dict):
2021-12-14 12:51:47 +03:00
pass
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)
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()
def towavfile(core:VACore, text_to_speech:str,wavfile:str):
"""
Проигрывание речи ответов голосового ассистента (без сохранения аудио)
:param text_to_speech: текст, который нужно преобразовать в речь
"""
core.ttsEngine.save_to_file(str(text_to_speech),wavfile)
2021-12-14 12:51:47 +03:00
core.ttsEngine.runAndWait()