重构程序文件目录结构并更新相关路径引用
- 创建新的目录结构:research/、tools/(含子目录)和apps/ - 移动核心理论文件到research/core-theory/ - 移动天山理论文件到research/specialized/ - 重组tools/目录为多个子目录:content-generation/、data-processing/等 - 更新所有文档中的路径引用,包括README.md、项目结构说明.md等 - 更新工作流文件和脚本中的路径引用 - 更新文档索引文件中的路径引用
This commit is contained in:
64
tools/content-generation/generate_podcast.py
Normal file
64
tools/content-generation/generate_podcast.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import os
|
||||
from gtts import gTTS
|
||||
import argparse
|
||||
|
||||
def generate_podcast(text_file_path, output_audio_path, lang='zh-CN'):
|
||||
"""
|
||||
将文本文件内容转换为语音并保存为 MP3 文件。
|
||||
"""
|
||||
if not os.path.exists(text_file_path):
|
||||
print(f"错误: 文本文件 '{text_file_path}' 不存在。")
|
||||
return False
|
||||
|
||||
try:
|
||||
with open(text_file_path, 'r', encoding='utf-8') as f:
|
||||
text = f.read()
|
||||
except Exception as e:
|
||||
print(f"错误: 读取文本文件失败: {e}")
|
||||
return False
|
||||
|
||||
if not text.strip():
|
||||
print("警告: 文本文件内容为空,跳过语音生成。")
|
||||
return False
|
||||
|
||||
try:
|
||||
tts = gTTS(text=text, lang=lang, slow=False)
|
||||
tts.save(output_audio_path)
|
||||
print(f"成功将文本转换为语音并保存到 '{output_audio_path}'")
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"错误: 文本转语音失败: {e}")
|
||||
print("请确保已安装 gTTS 库: pip install gTTS")
|
||||
return False
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description="将文本文件转换为 Podcast 音频。")
|
||||
parser.add_argument("--text_file", required=True, help="输入文本文件的路径。")
|
||||
parser.add_argument("--output_audio", required=True, help="输出 MP3 音频文件的路径。")
|
||||
parser.add_argument("--lang", default="zh-CN", help="语音语言 (例如 'en', 'zh-CN')。")
|
||||
args = parser.parse_args()
|
||||
|
||||
# 确保 gTTS 已安装
|
||||
try:
|
||||
import gtts
|
||||
except ImportError:
|
||||
print("gTTS 库未安装。正在尝试安装...")
|
||||
try:
|
||||
subprocess.run([f"./documentation/analysis/phallic-worship-analysis/venv/bin/pip", "install", "gTTS"], check=True)
|
||||
print("gTTS 安装成功。")
|
||||
except Exception as e:
|
||||
print(f"gTTS 安装失败: {e}")
|
||||
exit(1)
|
||||
|
||||
# 在实际应用中,这里应该有一个明确的触发机制或配置来决定是否生成音频
|
||||
# 例如,通过命令行参数 `--confirm-generate` 或环境变量
|
||||
# 为了避免意外生成,这里默认不执行生成,除非明确指定
|
||||
print("警告: 文本转语音功能默认不自动执行。")
|
||||
print("如需生成音频,请在脚本中手动启用或通过 CI/CD 配置触发。")
|
||||
# if args.confirm_generate: # 示例:如果添加了确认参数
|
||||
# if generate_podcast(args.text_file, args.output_audio, args.lang):
|
||||
# print("Podcast 生成完成。")
|
||||
# else:
|
||||
# print("Podcast 生成失败。")
|
||||
# else:
|
||||
# print("Podcast 生成已跳过,因为未收到明确的生成指令。")
|
||||
Reference in New Issue
Block a user