2

我现在想知道如何在 python 中将文本转换为语音。

在.NET中我使用

Dim SAPI

Msg = 'Hi this is a test'

SAPI = CreateObject("sapi.spvoice")
SAPI.Speak(Msg)
4

6 回答 6

2

您可以通过pyttsx模块来实现它。它使用默认的 MS 语音识别系统。

import pyttsx

engine = pyttsx.init()
engine.say("Your Message")
engine.runAndWait()
于 2012-12-07T09:06:48.693 回答
2

我知道在这里回答真的很晚,但我想我会在这里发布,因为我有基于TTS转换的解决方案SAPIin python,这是 OP 的原始问题。

SAPI这对于使用in寻找解决方案的其他人可能很有用python

from win32com.client import constants, Dispatch

Msg = "Hi this is a test"

speaker = Dispatch("SAPI.SpVoice")  #Create SAPI SpVoice Object
speaker.Speak(Msg)                  #Process TTS
del speaker                         #Delete speaker object and free up memory
于 2016-05-16T14:14:43.080 回答
0
# pip install pywin32
# pip install pyttsx3
 
import pyttsx3

pyttsx3.speak('Hello Woeld')
于 2021-07-16T14:41:00.783 回答
0

您可以使用gTTS模块来完成。它将文本转换为语音。您必须使用的第二个模块是playsound来播放转换后的文本。

    from gtts import gTTS #pip install gtts
    import playsound #pip install playsound
    import os

    my_aud = gTTS("hello how are you") #converts the text into speech
    my_aud.save('demo.mp3') #save the file with .mp3 extension
    playsound('demo.mp3') #to play it
    os.remove('demo.mp3')
于 2020-06-17T14:54:32.330 回答
0

这是我自己创建的男声和女声功能。
只需定义一个文件名并保存即可。
现在您可以将其导入另一个文件并一次又一次地重复使用它。

pip install pyttsx3

import pyttsx3
def femaleVoice(text):
    print("Program : "+text)
    engine = pyttsx3.init()
    voices = engine.getProperty('voices')
    engine.setProperty('voice', voices[-1].id)
    engine.say(text)
    engine.runAndWait()

def maleVoice(text):
    print("Program : "+text)
    pyttsx3.speak(text)

femaleVoice("There we go.")#Text
maleVoice("There we go.")
于 2021-07-30T03:29:29.823 回答
0
import pyttsx3
speaker=pyttsx3.init()
speaker.say("Your message")
speaker.runAndWait()
于 2020-12-21T12:32:52.943 回答