Python 文本转语音

Python 中实现文字语音(Text-to-Speech, TTS)功能,可以使用多种库和工具。以下是几种较为常用的方法及其实现方式: ### 1. 使用 `pyttsx3` `pyttsx3` 是一个跨平台的文本语音换库,支持 Windows、Mac OS 和 Linux 系统。它无需网络连接即可运行,并且可以设置语速、音量以及选择不同的语音。 ```python import pyttsx3 # 初始化TTS引擎 engine = pyttsx3.init() # 设置语速,默认值为200 engine.setProperty('rate', 150) # 设置音量,范围是0.0到1.0,默认值为1.0 engine.setProperty('volume', 0.9) # 获取并设置中文语音 voices = engine.getProperty('voices') for voice in voices: if voice.languages and 'zh' in voice.languages[0]: engine.setProperty('voice', voice.id) break # 定义朗读文本的函数 def speak(text): engine.say(text) engine.runAndWait() # 使用函数朗读中文文本 speak("您好,这是一个Python实现的语音朗读示例。") # 更改语音为英文 for voice in voices: if voice.languages and 'en' in voice.languages[0]: engine.setProperty('voice', voice.id) break # 使用函数朗读英文文本 speak("Hello, this is an example of speech synthesis in Python.") ``` ### 2. 使用 `gTTS` (Google Text-to-Speech) `gTTS` 是 Google 提供的一个简单易用的文本语音换服务,它需要互联网连接,并且生成的音频文件可以直接保存为 MP3 文件。 ```python from gtts import gTTS import os # 要换的文字 text = "这是一个使用gTTS的例子" # 创建 gTTS 对象并指定语言 tts = gTTS(text=text, lang='zh') # 保存成音频文件 tts.save("example.mp3") # 播放音频文件(适用于Windows) os.system("start example.mp3") ``` ### 3. 使用 `edge-tts` `edge-tts` 是基于微软 Edge 浏览器内置的 TTS 功能开发的 Python 库,它可以提供高质量的声音并且支持多种语言和声音类型。 ```python import edge_tts # 定义要使用的语音文本 TEXT = "这是一段通过Edge TTS生成的语音" VOICE = "zh-CN-XiaoyanNeural" # 可以根据需要更改语音类型 # 创建通信客户端 async def main() -> None: communicate = edge_tts.Communicate(TEXT, VOICE) await communicate.save("output.mp3") if __name__ == "__main__": import asyncio asyncio.run(main()) ``` ### 4. 使用 `pyttsx` `pyttsx` 是另一个较老但仍然可用的库,它是 `pyttsx3` 的前身。不过由于其更新较少,推荐优先考虑使用 `pyttsx3`。 ```python import pyttsx # 初始化引擎 engine = pyttsx.init() # 设置语速 engine.setProperty('rate', 150) # 设置音量 engine.setProperty('volume', 0.9) # 设置语音 voices = engine.getProperty('voices') for voice in voices: if 'zh' in voice.name: # 根据系统安装的语言调整 engine.setProperty('voice', voice.id) break # 朗读文本 engine.say("你好,这是pyttsx的示例") engine.runAndWait() ``` ### 5. 使用 `nltk` + `espeak` (仅限Linux) 对于 Linux 用户来说,可以通过 NLTK 结合 eSpeak 来实现基本的 TTS 功能,但这通常不是首选方案,因为其他方法提供了更好的音质和更多的选项。 --- 以上就是几种常见的 Python 实现文字语音的方法[^1]。每种方法都有自己的特点,您可以根据具体需求选择适合您的项目的方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值