You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.3 KiB

import subprocess
import os
import sys
TEXT = "This is a test of the text to speech conversion. If you hear this, the text file conversion is working."
WAV_TMP = "/tmp/tts_test_raw.wav"
WAV_FINAL_PATH = "/var/lib/asterisk/sounds/tts_test_final.wav"
WAV_FINAL_NAME = "tts_test_final"
NODE = "62394"
def run(cmd):
print(f"Executing: {cmd}")
try:
subprocess.run(cmd, shell=True, check=True)
except subprocess.CalledProcessError as e:
print(f"Error running command: {e}")
sys.exit(1)
def main():
print("--- Starting TTS Isolation Test ---")
# 1. Generate WAV from Text
print(f"1. Generating audio for text: '{TEXT}'")
run(f"pico2wave -w {WAV_TMP} \"{TEXT}\"")
# 2. Convert to Asterisk format (8kHz, 16bit, Mono)
print("2. Converting format with Sox...")
# Clean up old file if exists
if os.path.exists(WAV_FINAL_PATH):
os.remove(WAV_FINAL_PATH)
run(f"sox {WAV_TMP} -r 8000 -c 1 -b 16 -e signed-integer {WAV_FINAL_PATH}")
# 3. Fix permissions
print("3. Setting permissions...")
os.chmod(WAV_FINAL_PATH, 0o644)
# 4. Playback
print(f"4. Playing on node {NODE}...")
run(f"sudo /usr/sbin/asterisk -rx 'rpt playback {NODE} {WAV_FINAL_NAME}'")
print("--- Test Complete ---")
if __name__ == "__main__":
main()

Powered by TurnKey Linux.