28 lines
819 B
Python
28 lines
819 B
Python
import google.cloud.texttospeech as tts
|
|
|
|
OUTPUT_FILE = "output.wav"
|
|
|
|
# todo: make sure to make the file name unique and delete it after sending
|
|
|
|
|
|
def text_to_wav(voice_name: str, text: str):
|
|
language_code = "-".join(voice_name.split("-")[:2])
|
|
text_input = tts.SynthesisInput(text=text)
|
|
voice_params = tts.VoiceSelectionParams(
|
|
language_code=language_code, name=voice_name
|
|
)
|
|
audio_config = tts.AudioConfig(audio_encoding=tts.AudioEncoding.LINEAR16)
|
|
|
|
client = tts.TextToSpeechClient()
|
|
response = client.synthesize_speech(
|
|
input=text_input,
|
|
voice=voice_params,
|
|
audio_config=audio_config,
|
|
)
|
|
|
|
with open(OUTPUT_FILE, "wb") as out:
|
|
out.write(response.audio_content)
|
|
print(f'Generated speech saved to "{OUTPUT_FILE}"')
|
|
|
|
return OUTPUT_FILE
|