colab的tts转换

安装

!pip install edge-tts ftfy

运行代码:


import asyncio
import nest_asyncio
from IPython.display import Audio
import edge_tts  # 确保导入edge_tts模块
import ftfy  # 导入ftfy模块

nest_asyncio.apply()

# 定义异步函数
async def generate_speech(text, voice):
    communicate = edge_tts.Communicate(text, voice)
    await communicate.save("output.mp3")

# 读取文本文件内容并使用ftfy修复编码问题
with open('/content/txt/test.txt', 'r', encoding='utf-8', errors='ignore') as file:
    text = file.read()
fixed_text = ftfy.fix_text(text)  # 使用ftfy修复文本

# 调用异步函数
asyncio.run(generate_speech(fixed_text, 'zh-CN-YunjianNeural'))

说明:

上传txt文件 /content/txt/test.txt

拷贝到Google云盘,再下载:

!cp /content/output.mp3 /content/drive/My\ Drive/

修订


import asyncio
import nest_asyncio
import edge_tts
import ftfy
import os

nest_asyncio.apply()

# 定义异步函数
async def generate_speech(text, voice, output_path):
    communicate = edge_tts.Communicate(text, voice)
    await communicate.save(output_path)

# 在控制台中输入文件路径
file_path = input("请输入文本文件的路径:")
# 从文件路径中提取文件名(不含扩展名)
file_name = os.path.splitext(os.path.basename(file_path))[0]
default_output_file = f"{file_name}.mp3"  # 默认输出文件名
output_file = input(f"请输入输出MP3文件的完整路径(包括文件名),直接按回车使用默认值 '{default_output_file}':") or default_output_file

# 在控制台中输入语音类型,如果用户直接按回车,则使用默认值
default_voice = 'zh-CN-YunjianNeural'
voice = input("请输入语音类型(例如 'zh-CN-YunjianNeural'),直接按回车使用默认值:") or default_voice

# 读取文本文件内容并使用ftfy修复编码问题
try:
    with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
        text = file.read()
    fixed_text = ftfy.fix_text(text)  # 使用ftfy修复文本

    # 调用异步函数
    asyncio.run(generate_speech(fixed_text, voice, output_file))
except FileNotFoundError:
    print("文件未找到,请检查路径是否正确。")
except Exception as e:
    print(f"发生错误:{e}")

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注