基于pyttsx3的文字转语音实现

发布于:2025-05-21 ⋅ 阅读:(13) ⋅ 点赞:(0)

1、概述

        pyttsx3   是一个文本到语音(TTS)库,它允许你在Python中将文本转换为语音。  pyttsx3   支持多种语音引擎,包括一些可以设置不同性别声音的引擎。

2、实现

        安装库: pip install pyttsx3

        实现过程:1、初始化了一个 pyttsx3   引擎

                  2、通过getProperty('voices')   获取所有可用的语音属性。通过遍历这些属性,找到不同性别的声音。在找到合适的女性声音后,使用   setProperty('voice', voice.id)   设置为该声音。

       注意:可用的声音和它们的属性(如性别)取决于你的操作系统和已安装的语音引擎。在某些系统上,可能没有明确标识性别的语音,或者语音引擎可能不支持设置性别。

        此外,  pyttsx3   支持的语音引擎可能在不同的操作系统上有所不同。例如,在Windows上,它可能支持SAPI5和SAPI4引擎,而在macOS上,它可能支持NSSpeechSynthesizer引擎。每种引擎支持的属性和功能可能有所不同。

import pyttsx3

# 初始化 pyttsx3 引擎
engine = pyttsx3.init()

# 设置语音属性
# 这里以使用 SAPI5 语音引擎为例,它支持设置性别
voices = engine.getProperty("voices")
for voice in voices:
    # 打印所有可用的语音属性,以找到合适的男女声音
    print("Voice:")
    print(f" - ID: {voice.id}")
    print(f" - Name: {voice.name}")
    print(f" - Languages: {voice.languages}")
    print(f" - Gender: {voice.gender}")
    print(f" - Age: {voice.age}")

# 选择一个男性或女性声音
# 例如,选择第一个女性声音
for voice in voices:
    if voice.gender == "Female":
        engine.setProperty("voice", voice.id)
        break
else:
    # 如果没有找到女性声音,使用默认声音
    engine.setProperty("voice", voices[0].id)

# 设置语速
engine.setProperty("rate", 120)  # 语速范围一般为100-200

# 将文本转换为语音
text = "赵佳琪给爸爸讲个故事吧"
engine.save_to_file(text, "outputv2.mp3")
engine.say(text)

# 播放语音
engine.runAndWait()


网站公告

今日签到

点亮在社区的每一天
去签到