程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python将文本转化为语音 pyttsx3 详解

hfteth 2025-04-27 13:53:38 技术文章 22 ℃

大家好,我又来给你们科普啦,这回咱们要聊聊那个叫做pyttsx3的神仙级别的程序。这个玩意儿可不得了啊,它是Python编程里的一个小神器,能把我们输入的文字变成生动的声音。啥?不信?那您往下瞧!

首先得说说,pyttsx3是个全能选手,不论你用的是Python2还是Python3版本,都能玩转它。所以啊,只要你有个python环境,跟着下面的步骤走就能成功装进pyttsx3的大裤衩子里。

第一步就是安装

pip install pyttsx3

然后嗖地一下就搞定了。

不过,如果可能会遇到点儿问题,比如“找不到叫win32com.client、win32、或者win32api的模块”之类的。这种时候,麻烦你赶紧运行一句

pip install pypiwin32

搞定之后,pyttsx3就能为所欲为了。嘿,这事儿咋这么容易呢?


再说回pyttsx3怎么用吧,哎呀,这个东西真的简单得没法再简单了。给大家举个栗子吧,下面这段代码就是最基本的TTS(Text To Speech)应用。

pyttsx3使用

最简单的TTS

import pyttsx3
engine = pyttsx3.init()
engine.say('Sally sells seashells by the seashore.')
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

pyttsx3.init()在默认的情况下,对应不同的平台选择语音合成器也不一样

  • sapi5 - SAPI5 on Windows
  • nsss - NSSpeechSynthesizer on Mac OS X
  • espeak - eSpeak on every other platform

将语音保存到文件

import pyttsx3
engine = pyttsx3.init()
engine.save_to_file('Hello World' , 'test.mp3')
engine.runAndWait()

选择声音

engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
   engine.setProperty('voice', voice.id)
   engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

选择语速

engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate+50)
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

设置声音大小

engine = pyttsx3.init()
volume = engine.getProperty('volume')
engine.setProperty('volume', volume-0.25)
engine.say('The quick brown fox jumped over the lazy dog.')
engine.runAndWait()

pyttsx3原理

调用各个系统自己语音合成的api来实现语音合成的功能


看到这里,我想对大家说的就是,恭喜你已经掌握了pyttsx3的精髓,赶紧去施展才华吧!无数美妙的创意等着你去挖掘,世界那么大,你还要到处跑吗?说到底,人生就是要追求乐趣。我等大家过两天把作品晒上来,看看谁最有意思。我们下次再见咯,希望你们都学有所获,玩儿得开心!

最后为你推荐几幅美景

Tags:

最近发表
标签列表