Add pipertts-script (Theory Test?).py
This commit is contained in:
31
pipertts-script (Theory Test?).py
Normal file
31
pipertts-script (Theory Test?).py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
from piper.voice import PiperVoice as piper # Backbone of text to speech
|
||||||
|
import pyaudio
|
||||||
|
import os
|
||||||
|
print(os.popen('xsel').read())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TextToSpeak = os.popen('xsel').read()
|
||||||
|
|
||||||
|
voice = piper.load("path/to/en_US-amy-medium.onnx") # Load the model
|
||||||
|
|
||||||
|
chunks = voice.synthesize(TextToSpeak) # Set up Piper to stream audio
|
||||||
|
first_chunk = next(chunks) # Get the first chunk to set up audio stream configuration
|
||||||
|
|
||||||
|
p = pyaudio.PyAudio()
|
||||||
|
stream = p.open( # Open audio stream with correct settings
|
||||||
|
format=p.get_format_from_width(first_chunk.sample_width),
|
||||||
|
channels=first_chunk.sample_channels,
|
||||||
|
rate=first_chunk.sample_rate,
|
||||||
|
output=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
stream.write(first_chunk.audio_int16_bytes) # Play the first chunk
|
||||||
|
|
||||||
|
for chunk in chunks: # Play subsequent chunks of audio
|
||||||
|
stream.write(chunk.audio_int16_bytes)
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
stream.stop_stream()
|
||||||
|
stream.close()
|
||||||
|
p.terminate()
|
||||||
Reference in New Issue
Block a user