python 文字转语音(代码直接可用)

本文介绍了如何使用Python的pyttsx3库和WindowsAPI中的SAPI.SpVoice进行文字转语音,包括初始化引擎、设置声音和速度,以及提供两种不同的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核对文字工作又不想耗费眼睛的时候可用哦,读取速度可调节!

以下提供 2 种实现方法。

第一种方法:

import pyttsx3

'''
文字转语音
'''
engine = pyttsx3.init()  # 初始化引擎

voices = engine.getProperty('voices')  # 获取声音列表:中英文女声、纯英文女声

# print(len(voices))

engine.setProperty('voice', voices[0].id)  # 声音(voices[1]则是纯英文女声,读不了中文)

engine.setProperty('rate', 100)  # 速度

engine.say('你好!我是来自江苏的赵美丽,请问你来自哪里?')  # 编辑待转为语音的文字

engine.runAndWait()  # 文字转语音

第二种方法: 

# coding=utf-8

from win32com import client  # 需安装pypiwin32: pip install pypiwin32

oSa = client.Dispatch("SAPI.SpVoice")

oSa.rate = 2  # 调节语音速度

oSa.speak('''你好!我是来自江苏的赵美丽,请问你来自哪里?hello!''')

### Python 实现文字语音并更换音色 #### 使用 `pyttsx3` 库实现基础的文字语音功能 在 Python 中,可以通过 `pyttsx3` 库轻松实现文字语音的功能。该库允许开发者设置不同的声音属性,例如语速、音量以及音色(基于可用的声音引擎配置)。以下是具体的操作方法: ```python import pyttsx3 def text_to_speech(text, voice_index=0): engine = pyttsx3.init() # 获取所有可用的声音列表 voices = engine.getProperty('voices') # 设置特定的音色索引 engine.setProperty('voice', voices[voice_index].id) # 调整语速和音量(可选) rate = engine.getProperty('rate') # 默认速度 engine.setProperty('rate', rate - 50) # 减慢语速 volume = engine.getProperty('volume') # 当前音量 engine.setProperty('volume', volume + 0.25) # 提高音量 # 将文本化为语音 engine.say(text) engine.runAndWait() # 测试函数 text_to_speech("这是一个测试语音", voice_index=1) # 替换为其他索引来更改音色[^1] ``` 上述代码展示了如何通过调整 `voice_index` 参数来切换不同音色。 --- #### 使用更高级的 TTS 工具:Qwen 和 Gradio 推理接口 如果需要更高定制化的需求,例如生成多种风格或多说话者的语音,则可以利用 Qwen 的强大能力。Qwen 支持多语言环境下的高质量语音合成,并提供了一个简单的 Web 界面供用户交互。以下是具体的实现方式: ##### 安装依赖项 首先,确保已安装必要的包: ```bash pip install gradio qwen ``` ##### 启动 Gradio 推理应用 运行以下命令启动一个本地的 TTS 推理服务: ```bash f5-tts_infer-gradio ``` 这将打开一个浏览器窗口,展示图形化的界面用于输入文本并选择对应的音色或说话者模型[^2]。 ##### 自定义调用 API 对于程序化集成场景,可以直接调用 Qwen 的 RESTful API 或 SDK 来完成任务。下面是一个示例脚本: ```python from qwen import Audio audio_client = Audio(model="qwen2.5-3b-instruct") response = audio_client.text_to_speech( text="你好,欢迎体验通义千问的语音合成功能。", speaker_id="female_01", # 可替换为其他预训练好的说话者 ID ) with open("output_audio.wav", "wb") as file: file.write(response.content) print("音频文件保存成功!") ``` 此代码片段演示了如何指定某个特定的说话者(如女性声线),并将生成的结果存储为 WAV 文件。 --- ### 总结 两种方案各有优劣:`pyttsx3` 是轻量化工具,适合快速原型开发;而基于 Qwen 的解决方案则提供了更高的灵活性与质量保障,尤其适用于复杂应用场景中的个性化需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我有明珠一颗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值