本文介绍在 Windows 环境下,使用 Python 语言调用微软的 TTS 服务,实现将文字转换成语音朗读的方法。
方法一:使用 win32com 模块实现
win32com 模块是一个 Python 的扩展模块,提供了与 Windows 操作系统的 COM 接口进行交互的功能。
首先安装 pywin32 库。我记得这个是库是默认自带的,反正你有的话就跳过,没有的话就装一下。
pip install pywin32
Python 程序:
import win32com.clientdef speak(text): speaker = win32com.client.Dispatch("SAPI.SpVoice") print(speaker.GetVoices().Item(0).GetDescription()) speaker.Speak(text)text = "欢迎使用Microsoft TTS语音引擎" speak(text)
修改 speaker.GetVoices().Item(0) 的值可以改变播音员(音色),但 Windows 系统自带 TTS 默认好像都只有两个播音员可供选择,一个中文一个英文。
方法二:使用 pyttsx3 库实现
首先安装 pyttsx3 库。pyttsx3 库用于在各种平台上实现文本到语音(TTS)功能。它基于底层的 TTS 引擎,并提供了简单易用的接口,可以将文本转换为声音输出。
pip install pyttsx3
Python 程序:
import pyttsx3 # 初始化语音引擎engine = pyttsx3.init() # 设置语音引擎为微软的Speech Platformvoices = engine.getProperty('voices')for voice in voices: if 'Microsoft' in voice.name: engine.setProperty('voice', voice.id) break # 要转换为语音的文本text = "这是要朗读的文本" # 将文本转换为语音engine.say(text)engine.runAndWait()
修改 text 变量的值并运行程序即可。
Windows 系统自带的TTS可供选择的音色(播音员)有限,质量也不咋地,适合自用或者对质量要求不高的场景,如果要用于商业场景,建议使用云平台提供的 TTS 服务。