【教学类-134-01】20260414 Python制作童话故事音频

20260414Python制作童话故事音频

背景需求:

这几天用Python制作AI视频的背景旁白,对话等

使用了三个库

1. pathlib.Path

  • 类型:Python 标准库

  • 用途:面向对象的文件系统路径操作

  • 功能:处理文件路径、目录、文件读写等

2. edge_tts

  • 类型 :第三方库(需要安装:pip install edge-tts

  • 用途:文本转语音(Text-to-Speech)

  • 功能:使用 Microsoft Edge 的在线语音服务将文本转换为音频

3. asyncio

  • 类型:Python 标准库

  • 用途:异步 I/O 框架

  • 功能:编写并发代码,处理异步操作(如网络请求、文件读写等、用

用Python制作音频又快又好,还可以调试速度。

我就想到日常教学中一个问题:来园活动玩桌面玩具,8:40分左右收玩具坐下后,我们通常播放一个QQ音乐里面的"童话故事",让幼儿安静下来,准备喝牛奶。

但是搜索童话故事,有三个问题

1、听不见:有些故事声音太轻,或者伴奏音乐太响,小孩子只听声音,看不到画面,注意力分散了。和同伴交头接耳打闹!

2、时长短、要收费:故事太短了,3分钟以内,会自动播放吓一跳,但有些要收费放不了,就会反复放之前可以播放的故事。

"听过了!换一个"小孩子们嚷着。

3、关闭繁琐:关闭QQ音乐时,总是习惯性按右上角的×,但声音还在记录发出。必须按里面的暂停按钮,或者关闭右下角的QQ音乐APP按钮才能完全停止声音。鼠标不灵活,点按钮很费劲。

基于以上问题,我想用Python直接生成童话故事mp3,转移到电脑里,让幼儿聆听自制的童话故事音频。

制作过程:

昨天正好听了《青蛙王子》,我先做这个故事的全文

文字太多了,放到一个TXT里

问问如何读取一整个TXT

python 复制代码
# 男播音 云希 青蛙王子

from pathlib import Path
import edge_tts
import asyncio

# ========== 配置区域 ==========
# 文本文件所在文件夹
TEXT_FOLDER = Path(r"C:\Users\jg2yXRZ\OneDrive\桌面\20260413青蛙王子脚本")  # 修改为你的文件夹路径
TEXT_FILE_NAME = "青蛙王子.txt"                # 文本文件名

# 音频输出路径
SAVE_DIR = TEXT_FOLDER
SAVE_DIR.mkdir(parents=True, exist_ok=True)

# 播音员音色
VOICE = "zh-CN-YunyangNeural"  # 男播音

# 音频参数
RATE = "-20%"      # 语速稍慢
PITCH = "+0Hz"     # 标准音调
VOLUME = "+10%"    # 音量适中
# ============================

async def generate_audio():
    # 构建完整的文本文件路径
    txt_path = TEXT_FOLDER / TEXT_FILE_NAME
    
    # 检查文件是否存在
    if not txt_path.exists():
        print(f"❌ 错误:找不到文件 {txt_path}")
        return
    
    # 读取文本文件内容(UTF-8编码)
    with open(txt_path, "r", encoding="utf-8") as f:
        text_content = f.read()
    
    # 去除首尾空白
    text_content = text_content.strip()
    
    if not text_content:
        print("❌ 错误:文本文件为空")
        return
    
    # 生成音频文件名(与txt文件名相同,扩展名改为mp3)
    audio_filename = txt_path.stem + ".mp3"  # 1.txt → 1.mp3
    out = SAVE_DIR / audio_filename
    
    # 生成语音
    tts = edge_tts.Communicate(
        text_content,
        VOICE,
        rate=RATE,
        pitch=PITCH,
        volume=VOLUME
    )
    
    await tts.save(str(out))
    
    print(f"✅ 已生成:{audio_filename}")
    print(f"📁 来源文件:{txt_path}")
    print(f"📊 文本总字数:{len(text_content)} 字")
    print(f"💾 保存位置:{out}")

if __name__ == "__main__":
    asyncio.run(generate_audio())
    print("\n🎉 音频生成完成!")

10秒左右就生成一个8分钟的音频,"男声-云希"的声音比较响亮

继续问问小班孩子喜欢什么样的童话故事

继续做了《金鹅》《狼的七只小羊》

这个故事适合女声

python 复制代码
# 女播音员,晓晓 晓伊 青蛙王子\狼和七只小羊

from pathlib import Path
import edge_tts
import asyncio

# ========== 配置区域 ==========
# 文本文件所在文件夹
TEXT_FOLDER = Path(r"C:\Users\jg2yXRZ\OneDrive\桌面\20260413青蛙王子脚本")  # 修改为你的文件夹路径
# TEXT_FILE_NAME = "青蛙王子.txt"                # 文本文件名
TEXT_FILE_NAME = "狼和七只小羊.txt"                # 文本文件名

# 音频输出路径
SAVE_DIR = Path(r"C:\Users\jg2yXRZ\OneDrive\桌面\20260413青蛙王子脚本")
TEXT_FILE_NAME1="青蛙王子女.txt"
SAVE_DIR.mkdir(parents=True, exist_ok=True)

# 播音员音色

# VOICE = "zh-CN-XiaoxiaoNeural"  # 晓晓 - 温暖亲切,最常用的女声
VOICE = "zh-CN-XiaoyiNeural"  # 晓伊 - 活泼可爱,元气少女音
# VOICE = "zh-CN-XiaochenNeural"  # 晓晨 - 温柔知性
# VOICE = "zh-CN-XiaohanNeural"  # 晓涵 - 温暖治愈
# VOICE = "zh-CN-XiaomengNeural"  # 晓梦 - 软萌萝莉音
# VOICE = "zh-CN-XiaoruiNeural"  # 晓睿 - 甜美少女音
# VOICE = "zh-CN-XiaoshuangNeural"  # 晓双 - 活泼明亮
# VOICE = "zh-CN-XiaoxiaNeural"  # 晓霞 - 成熟温柔
# VOICE = "zh-CN-XinranNeural"  # 欣然 - 清新自然
# 音频参数
RATE = "-20%"      # 语速稍慢
PITCH = "+0Hz"     # 标准音调
VOLUME = "+10%"    # 音量适中
# ============================

async def generate_audio():
    # 构建完整的文本文件路径
    txt_path = TEXT_FOLDER / TEXT_FILE_NAME
    
    # 检查文件是否存在
    if not txt_path.exists():
        print(f"❌ 错误:找不到文件 {txt_path}")
        return
    
    # 读取文本文件内容(UTF-8编码)
    with open(txt_path, "r", encoding="utf-8") as f:
        text_content = f.read()
    
    # 去除首尾空白
    text_content = text_content.strip()
    
    if not text_content:
        print("❌ 错误:文本文件为空")
        return
    
    # 生成音频文件名(与txt文件名相同,扩展名改为mp3)
    audio_filename = txt_path.stem + ".mp3"  # 1.txt → 1.mp3
    out = SAVE_DIR / audio_filename
    
    # 生成语音
    tts = edge_tts.Communicate(
        text_content,
        VOICE,
        rate=RATE,
        pitch=PITCH,
        volume=VOLUME
    )
    
    await tts.save(str(out))
    
    print(f"✅ 已生成:{audio_filename}")
    print(f"📁 来源文件:{txt_path}")
    print(f"📊 文本总字数:{len(text_content)} 字")
    print(f"💾 保存位置:{out}")

if __name__ == "__main__":
    asyncio.run(generate_audio())
    print("\n🎉 音频生成完成!")

用男声云希做了《金鹅》,用女声晓晓《公主与青蛙》、女声晓伊《狼和七只小羊》

《狼》里面第一次,把"格林童话"和"狼和七只小羊"写在一行,写过音频里面念的是"格林童话狼"+"和七只小羊"

测试多次后无果,用换行,才变成"格林童话"+"狼和七只小羊"

最后把音频放到教室左面上播放

20260414Python制作童话故事音频

感悟:

1、故事比较长:8分钟以上,适合一日环节的过渡活动用

2、只有声音、没有图像,只有部分女孩能安静趴着聆听,超过3分钟,男孩们就开始蠢蠢欲动,动手打闹聊天。

3、幼儿对熟悉的故事有持续聆听的兴趣(如:听不懂《金鹅》,但对《七只小羊》能保持安静倾听。)

相关推荐
文慧的科技江湖2 小时前
光伏储能充电系统PRD功能列表 - 慧知开源充电桩平台
开发语言·开源·netty·慧知开源充电桩平台·开源充电桩平台
Irene19912 小时前
推荐学 Python 的编辑器:PyCharm(附:下载安装教程)
python·编辑器
秋月的私语2 小时前
遥感影像拼接线优化工具:基于Qt+GDAL+OpenCV的从一到二实践
开发语言·qt·opencv
雾岛听蓝2 小时前
Qt操作指南:信号与槽机制
开发语言·数据库·qt
郝学胜-神的一滴2 小时前
Python 多线程编程从入门到精通:原理+实战+最佳实践
开发语言·网络·python·pycharm
feng_you_ying_li2 小时前
C++11,lambda,包装器
开发语言·数据结构·c++
郝学胜-神的一滴2 小时前
深度学习激活函数核心精讲:Sigmoid 原理、推导与工程实践
人工智能·pytorch·python·深度学习·神经网络·机器学习
sycmancia2 小时前
Qt——布局管理区(二)
开发语言·前端·qt
好家伙VCC2 小时前
**TEE在嵌入式安全中的应用实践:基于ARM TrustZone的加密存储方案设计与实现*
java·arm开发·python·struts·安全