Deepak Verma
Deepak Verma

Reputation: 673

How can I convert text to speech (mp3 file) in python?

I can convert text to speech in python using puttsx. and I can do record audio using microphone(headphone) to mp3 file.

What I want to do is to convert text to mp3 file.
Is there a way to store audio playing using pyttsx to memory or unicode string.

Can anyone help me storing audio to memory, or how I can convert that string to mp3 file.

Upvotes: 6

Views: 13406

Answers (3)

Psysmar
Psysmar

Reputation: 31

You can bypass the 100 character rule by splitting the 'theText' string into an array: theText = f.read().split("<null>") (i used "<null>" as the delimiter) put the delimiter in the text every sentence or space before 100 characters. Create a for-loop: for section in theText: and every section run engine.Speak(section)

I hope this helps with 100 character limits!

Upvotes: 2

SHIVA73
SHIVA73

Reputation: 208

To generate the Audio file from the text file, i am using this code i hope it can help you

from comtypes.client import CreateObject    
engine = CreateObject("SAPI.SpVoice")
stream = CreateObject("SAPI.SpFileStream")
from comtypes.gen import SpeechLib
infile = "SHIVA.txt"
outfile = "SHIVA-audio.wav"
stream.Open(outfile, SpeechLib.SSFMCreateForWrite)
engine.AudioOutputStream = stream
f = open(infile, 'r')
theText = f.read()
f.close()
engine.speak(theText)
stream.Close()

Upvotes: 5

Thorsten Kranz
Thorsten Kranz

Reputation: 12755

I do not know about pyttsx, but a while ago I used the Google TTS API to generate MP3s from text.

You can get an idea of how it works from this code snippet. The free version of Google TTS is limited to a certain number of letters for each request, So I'd recommend splitting the text into sentences and creating a file for each sentence.

If you need help with that, please tell me.

Upvotes: 3

Related Questions