Reputation: 673
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
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
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
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