Upload edit\Qwen3-TTS-test\simple-tts-test.py with huggingface_hub
Browse files
edit//Qwen3-TTS-test//simple-tts-test.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import wave
|
| 2 |
+
import struct
|
| 3 |
+
import math
|
| 4 |
+
|
| 5 |
+
SAMPLING_RATE = 22050
|
| 6 |
+
|
| 7 |
+
def generate_tone(duration=0.5, frequency=300, volume=0.3):
|
| 8 |
+
n_samples = int(SAMPLING_RATE * duration)
|
| 9 |
+
return [int(32767 * math.sin(2 * math.pi * frequency * i / SAMPLING_RATE) * volume) for i in range(n_samples)]
|
| 10 |
+
|
| 11 |
+
def generate_wav(output_file, message):
|
| 12 |
+
print(f'Generating {output_file}')
|
| 13 |
+
try:
|
| 14 |
+
frames = []
|
| 15 |
+
message = message.strip()
|
| 16 |
+
words = message.split()
|
| 17 |
+
current_time = 0.0
|
| 18 |
+
for word in words:
|
| 19 |
+
t = current_time
|
| 20 |
+
n_frames = int(SAMPLING_RATE * 0.5)
|
| 21 |
+
if n_frames > 0:
|
| 22 |
+
frames.append([generate_tone()[i] for i in range(n_frames)])
|
| 23 |
+
n_frames = int(SAMPLING_RATE * 0.2)
|
| 24 |
+
t += 0.5
|
| 25 |
+
current_time += 0.7
|
| 26 |
+
if frames and len(frames[0]) > 0:
|
| 27 |
+
with wave.open(output_file, 'wx') as w:
|
| 28 |
+
w.setnchannels(1)
|
| 29 |
+
w.setsampwidth(2)
|
| 30 |
+
w.setframerate(SAMPLING_RATE)
|
| 31 |
+
num_channels = len(frames[0])
|
| 32 |
+
for i in range(num_channels):
|
| 33 |
+
w.writeframes(struct.pack(f'{len(frames)}h', *frames[i]))
|
| 34 |
+
except Exception as e:
|
| 35 |
+
print(f'Error: {e}')
|
| 36 |
+
|
| 37 |
+
generate_wav('out/audio/scene01.wav', 'Kimi K2.6')
|
| 38 |
+
generate_wav('out/audio/scene02.wav', 'dash and it brings state-of-the-art capabilities')
|
| 39 |
+
generate_wav('out/audio/scene03.wav', 'that change how we build AI products forever')
|
| 40 |
+
generate_wav('out/audio/scene04.wav', '')
|
| 41 |
+
generate_wav('out/audio/scene05.wav', '')
|
| 42 |
+
generate_wav('out/audio/scene06.wav', '')
|
| 43 |
+
generate_wav('out/audio/scene07.wav', '')
|
| 44 |
+
generate_wav('out/audio/scene08.wav', '')
|
| 45 |
+
generate_wav('out/audio/scene09.wav', '')
|
| 46 |
+
print('Audio files generated.')
|