python 将文本转语音

import os
import pyttsx3
import sys
# 创建 TTS 引擎对象
def get_engine(voice_id=None):
    engine = pyttsx3.init(driverName='sapi5')  # 使用sapi5驱动
    if voice_id is not None:
        voices = engine.getProperty('voices')
        for voice in voices:
            print(voice.id)
            if voice.id == voice_id:
                engine.setProperty('voice', voice.id)
                break
    return engine
#HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
#HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
#HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_KANGKANG_11.0
#HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_YAOYAO_11.0

def main():
    print("This is the main function.")

if __name__ == "__main__":
    # 获取命令行参数列表
    args = sys.argv
    directory = args[1]
    # 使用默认语音
    engine = get_engine("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_KANGKANG_11.0")
    #engine = pyttsx3.init()
    engine.setProperty('rate', 150)

    # 设置输出文件格式为 WAV
    engine.setProperty('outputFormat', 'wav')
    # 遍历目录下的所有文件
    for filename in os.listdir(directory):
        # 检查文件是否以 .txt 结尾
        if filename.endswith('.txt'):
            # 构建文件的完整路径
            filepath = os.path.join(directory, filename)
            output_path = filepath[:-4]+'.wav'
            # 打开 TXT 文件
            #print(filepath)
            with open(filepath, 'r', encoding='utf-8') as file:
                # 读取文件内容
                content = file.read()
                # 打印文件名和内容
                print(f"File: {filename}")
                #print(content)
                engine.save_to_file(content, output_path)
                engine.runAndWait()

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值