代码拉取完成,页面将自动刷新
同步操作将从 yanlang0123/ComfyUI_Lam 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import asyncio
import edge_tts
import numpy as np
import folder_paths
import os
class Text2AutioEdgeTts:
def __init__(self):
self.output_dir = os.path.join(folder_paths.get_output_directory(), 'autio')
if not os.path.exists(self.output_dir):
os.makedirs(self.output_dir)
@classmethod
def INPUT_TYPES(cls):
VOICES=['zh-CN-XiaoxiaoNeural','zh-CN-XiaoyiNeural','zh-CN-YunjianNeural','zh-CN-YunxiNeural','zh-CN-YunxiaNeural',
'zh-CN-YunyangNeural','zh-CN-liaoning-XiaobeiNeural','zh-CN-shaanxi-XiaoniNeural','zh-HK-HiuGaaiNeural',
'zh-HK-HiuMaanNeural','zh-HK-WanLungNeural','zh-TW-HsiaoChenNeural','zh-TW-HsiaoYuNeural','zh-TW-YunJheNeural']
return {
"required": {
"voice": (VOICES, ),
"filename_prefix": ("STRING", {"default": "comfyUI"}),
"text": ("STRING", {"multiline": True})
}
}
RETURN_TYPES = ("STRING",)
RETURN_NAMES = ("音频地址",)
FUNCTION = "text_2_autio"
OUTPUT_NODE = True
CATEGORY = "lam"
def text_2_autio(self,voice,filename_prefix,text):
full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path(filename_prefix, self.output_dir)
file = f"{filename}_{counter:05}_.mp3"
autio_path=os.path.join(full_output_folder, file)
asyncio.run(edge_tts_text_2_aution(voice,text,autio_path))
return {"ui": {"text": "音频保存成功文件地址:"+os.path.join(full_output_folder, file),
'autios':[{'filename':file,'type':'output','subfolder':'autio'}]}, "result": (autio_path, )}
async def edge_tts_text_2_aution(VOICE,TEXT,OUTPUT_FILE) -> None:
communicate = edge_tts.Communicate(TEXT, VOICE)
await communicate.save(OUTPUT_FILE)
NODE_CLASS_MAPPINGS = {
"Text2AutioEdgeTts": Text2AutioEdgeTts
}
NODE_DISPLAY_NAME_MAPPINGS = {
"Text2AutioEdgeTts": "微软文本转语音"
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。