python将英文英语单词转为语音Mp3文件gtts扩展

python将英文英语单词转为语音Mp3文件gtts扩展

开始

# 安装 pip install gTTS
# 需要网络才能创建mp3文件

from gtts import gTTS
import os
import mysql.connector
from mysql.connector import Error

def fetch_data():
    try:
        # 连接到 MySQL 数据库
        connection = mysql.connector.connect(
            host='localhost',  # 数据库主机地址
            user='root',       # 数据库用户名
            password='123456', # 数据库密码
            database='fa'  # 数据库名称(根据实际情况修改)
        )

        if connection.is_connected():
            print("Successfully connected to the database")
            # 创建游标对象
            cursor = connection.cursor(dictionary=True)  # 使用 dictionary=True 返回字典格式的结果
            # 执行 SQL 查询
            query = "SELECT id, title_en FROM fa_xgn_englishdetail"
            cursor.execute(query)
            # 获取查询结果
            records = cursor.fetchall()

            # 循环输出字段 id 和 title_en
            for row in records:
                print(f"ID: {row['id']}, Title (EN): {row['title_en']}")
                mp3_url = text_to_speech(row['title_en'], row['id'])
                if mp3_url is None:
                    print("Failed to generate mp3 file")
                    continue

                # 更新 mp3_url字段
                update_query = "UPDATE fa_xgn_englishdetail SET mp3_url = %s WHERE id = %s"
                cursor.execute(update_query, (mp3_url, row['id']))
                connection.commit()
                # break

    except Error as e:
        print(f"Error: {e}")
    finally:
        # 关闭游标和连接
        if connection.is_connected():
            cursor.close()
            connection.close()
            print("Database connection is closed")


def text_to_speech(text, mp3_name):
    try:
        # 创建 gTTS 对象,指定语言为英语
        tts = gTTS(text=text, lang='en', slow=True)

        # 保存语音到文件
        mp3_url = f"mp3/{mp3_name}.mp3"
        tts.save(mp3_url)

        # os.system("start speech.mp3")
        return mp3_url
    except Exception as e:
        print(f"Error: {e}")
        return None

if __name__ == "__main__":
    fetch_data()

这个音乐更自然些:

import asyncio
import edge_tts
from edge_tts import VoicesManager

TEXT = "Hello, welcome to the Python text to speech tutorial."
VOICE = "en-US-AriaNeural"
OUTPUT_FILE = "output1.mp3"

async def amain1() -> None:
    communicate = edge_tts.Communicate(TEXT, VOICE)
    await communicate.save(OUTPUT_FILE)

# 语音参数
TEXT = "Hello, welcome to the Python text to speech tutorial."
VOICE = "en-US-AriaNeural"
OUTPUT_FILE = "output3.mp3"
async def amain2() -> None:
    communicate = edge_tts.Communicate(TEXT, VOICE, rate="+10%", volume="+10%", pitch="+10Hz")
    await communicate.save(OUTPUT_FILE)

if __name__ == "__main__":
    asyncio.run(amain2())

结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值