用Python+微软TTS实现文字转语音的两种方法

2024-10-27 08:15:28 举报文章

本文介绍在 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 服务。

如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!
相关文档