web技术

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

2023-10-01 04:27 作者:不是企鹅

本文介绍在 Windows 环境下,使用 Python 语言调用微软的 TTS 服务,实现将文字转换成语音朗读的方法。

方法一:使用 win32com 模块实现

win32com 模块是一个 Python 的扩展模块,提供了与 Windows 操作系统的 COM 接口进行交互的功能。

首先安装 pywin32 库。我记得这个是库是默认自带的,反正你有的话就跳过,没有的话就装一下。

pip install pywin32

Python 程序:

import win32com.client

def 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 Platform
voices = 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 服务。

推荐文章
如何批量修改文件名?你可能在网上搜到了许多方法,但操作起来并不简单,有...
同事找我帮忙,让我帮他写一个Python程序,用来删除Excel中的重复行。于是我...
如何使用Python在Excel中删除行?实际情景中往往是要求按条件删除、批量删除...
同事找我帮忙,希望能帮她写一个文件检测程序,运行程序就能快速找出被修改...
如何使用 Python 在 Excel 查找数据?如何实现模糊查找和精确查找?如何在一...
推荐专题
如何自己建网站?建网站难不难?其实建网站说难不难,说容易也并不容易,难...
本专题精心收集整理了多种HTML+CSS+JS轮播图实现方案,带详细代码和讲解,正...