def text_to_mp3(text):
"""
文本转mp3
参数:
text (str): 要转换的文字
返回:
str: mp3文件路径
"""
output_file = None
# 内部定义异步函数
async def _amain():
nonlocal output_file
VOICE = "zh-CN-YunxiNeural" # zh-CN-YunxiNeural zh-CN-XiaoxiaoNeural
RATE = "+30%" # 调整语速
communicate = edge_tts.Communicate(text, VOICE, rate=RATE)
# 输出文件名 %Y%m%d_%H%M%S
file_path = datetime.datetime.now().strftime("%m%d_%H%M%S") + ".mp3"
output_file = save_path + file_path
try:
with open(output_file, "wb") as file:
async for chunk in communicate.stream():
if chunk["type"] == "audio":
file.write(chunk["data"])
elif chunk["type"] == "WordBoundary":
# print(f"WordBoundary: {chunk}")
pass
# 确保文件已正确创建并且有内容
if Path(output_file).stat().st_size > 0:
return return_dict(200, "转换成功", {"mp3_path": file_path})
else:
return return_dict(400, "mp3文件为空")
except Exception as e:
return return_dict(400, f"报错信息:{e}")
# 使用 asyncio.run 来运行异步函数,对外表现为同步调用
return asyncio.run(_amain())
文本转mp3
相关推荐
-
生成图片
from PIL import Image, ImageColor, ImageDraw, ImageFont, ImageFilterdef create_image_with_text(size, color, text, font_path, font_size, text_color, shadow_color, output_path): """ Create a new image of specified size and color with centered text that has a border and shadow. :param size: A tuple con
-
获取指定目录下的所有图片信息
1 获取指定目录下的所有图片信息// 获取指定目录下的所有图片信息 public function getImagesInfo($directory) { $images = []; // 创建递归目录迭代器 $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY ); // 遍历目录中的每个文件 foreach (
-
Thinkphp各版本的PHP要求
ThinkPHP 8.0:运行环境要求PHP8.0+,兼容PHP8.3ThinkPHP 6.1:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 6.0:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 5.1:运行环境要求PHP5.6+,兼容PHP8.0ThinkPHP 5.0:运行环境要求PHP5.4+,兼容PHP7.3