31 lines
908 B
Python
31 lines
908 B
Python
import pathlib
|
|
|
|
import edge_tts
|
|
|
|
from heurams.context import config_var
|
|
from heurams.services.logger import get_logger
|
|
|
|
from .base import BaseTTS
|
|
|
|
logger = get_logger(__name__)
|
|
|
|
|
|
class EdgeTTS(BaseTTS):
|
|
name = "EdgeTTS"
|
|
|
|
@classmethod
|
|
def convert(cls, text, path: pathlib.Path | str = "") -> pathlib.Path:
|
|
logger.debug("EdgeTTS.convert: text length=%d, path=%s", len(text), path)
|
|
try:
|
|
communicate = edge_tts.Communicate(
|
|
text,
|
|
config_var.get()["providers"]["tts"]["edgetts"]["voice"],
|
|
)
|
|
logger.debug("EdgeTTS 通信对象创建成功, 正在保存音频")
|
|
communicate.save_sync(str(path))
|
|
logger.debug("EdgeTTS 音频已保存到: %s", path)
|
|
return path # type: ignore
|
|
except Exception as e:
|
|
logger.error("EdgeTTS.convert 失败: %s", e)
|
|
raise
|