def speak_text(self, text):
"""Speak a single text"""
from gtts import gTTS
tts = gTTS(text=text, lang=self.lang)
# save the speech to temp file
tmp_file = NamedTemporaryFile()
tts.write_to_fp(tmp_file)
# play it with pyaudio
from utils.ev3 import audio
audio.play(tmp_file.name)
# remove it
tmp_file.close()
python类gTTS()的实例源码
def generate_tts(text, lang):
tts = gTTS(text=text, lang=lang)
filename = datetime.now()
if not os.path.exists('audios'):
os.makedirs('audios')
tts.save('audios/%s.ogg'%filename)
return filename
def to_speech(text):
tts = gTTS(text=text, lang = 'en')
return tts
def tts_voice_clip(voice_client, text):
with(yield from tts_lock):
tts = gTTS(text=text, lang='en')
tts.save('data/tts.mp3')
yield from voice_clip(voice_client, 'data/tts.mp3')
os.remove('data/tts.mp3')
def text_to_speech(txt, language):
tts = gTTS(text=u''+txt, lang=language, slow=False)
#tts = gTTS(text='What the hell are you doing? Cannot you do it properly.', lang='hi', slow=False)
#tts = gTTS(text="Dans l'arriere-pays de Provence, 30 kilometres au sud-ouest de Draguignan", lang='fr', slow=False)
tts.save('hello.mp3')
def speech(self, narration, lang, voice=None, **kwargs):
"""
Returns the get HTTP response by doing a GET to
/v1/synthesize with text, voice, accept
"""
resp = gTTS(text=narration, lang=lang)
resp.save('/tmp/google.mp3')
content = open('/tmp/google.mp3', 'rb').read()
return content, 'mp3'
def speak(text):
if connectionStatus()==True:
path = homeDir + "/Downloads/speech.mp3"
tts = gTTS(text, lang="hi")
tts.save(path)
getoutput("mpg123 " + path)
else:
call(['say', text])
#wikipedia coreection
def tts(self, ctx, *text: str):
"""Play a TTS clip in your current channel"""
if not gTTS_avail:
await self.bot.say("You do not have gTTS installed.")
return
vchan = ctx.message.author.voice_channel
if vchan is None:
await self.bot.say("You are not connected to a voice channel.")
return
self.enqueue_tts(vchan, " ".join(text))
def SpeakWord( word ):
tts = gTTS(text=word, lang='en')
tts.save("Sounds/LastSpoken.mp3")
s.sudo("mpg123 Sounds/LastSpoken.mp3").run()
def makeSpeech(poem,poem_filename, voice):
tts = gTTS(text=poem, lang=voice)
tts.save(poem_filename)
def __init__(self):
self.tts_engine = gTTS(' ')
self.filename = ''
def execute(self, text, filename='current_text.mp3'):
self.tts_engine = gTTS(text=text, lang='en')
self.filename = filename
self.tts_engine.save(savefile=self.filename)
os.system('mpg321 current_text.mp3 2> /dev/null')
self.post_execute()
pass
def play_message(message, language="en-us"):
audio_mp3_file = "/tmp/audio.mp3"
text_to_message = gTTS(message, language)
text_to_message.save(audio_mp3_file)
play_audio_file(audio_mp3_file)
def make_an_audio(url, filename, lang=None):
if lang is None:
lang = 'en'
article = Article(url)
article.download()
article.parse()
tts = gTTS(text=article.text, lang=lang)
f = open(join('audio', filename), 'wb')
tts.write_to_fp(f)
f.close()
def say_loading():
speech = "checking weather..."
print("[AUDIO]", speech)
filename = 'loading.mp3'
if not os.path.isfile('./' + filename):
print("[TTS] generating: " + filename)
tts = gTTS(text=speech, lang='en').save(filename)
play_sound(filename)
def say_weather(speech):
filename = 'weather.mp3'
print("[TTS] generating weather speech...")
tts = gTTS(text=speech, lang='en').save(filename)
print("[AUDIO]", speech)
play_sound(filename)
def say(self, message, speak_aloud=True, title='Speak'):
# May eventually be moved into its own plugin
message = str(message)
if not message.strip():
click.echo("No text to speak.")
return
computer_os = system()
folder = os.path.split(title)[0]
folder_path = os.path.join(self.speech_file_location,
folder)
if not os.path.exists(folder_path):
os.makedirs(folder_path)
home = settings['home']
if self.input_system == 'google':
# Create the MP3 file which will speak the text
title += '.wav'
path = os.path.join(home, title)
tts = gTTS(message, lang=self.spoken_language)
tts.save(path)
speech_file = "start /MIN {}"
if computer_os != 'Windows':
speech_file = "mpg123 {}"
speech_file = speech_file.format(os.path.join(home, title))
else:
# Create the Visual Basic code which will speak the text
title += '.vbs'
path = os.path.join(home, title)
message = re.sub('["\n\t]', '', message) # Strip out characters that would be spoken by the system.
if computer_os == "Windows":
with open(path, 'w') as file:
file.write(
"""
speaks="{}"
Dim speaks, speech
Set speech=CreateObject("sapi.spvoice")
speech.Speak speaks
""".format(message))
# Set up the file to be executed
speech_file = ["cscript.exe", title]
if computer_os != "Windows":
speech_file = ["espeak", message]
if speak_aloud:
try:
call(speech_file)
except FileNotFoundError:
if self.debugging:
click.echo("File not accessible:" + str(speech_file))