Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-ports
Path: blob/main/misc/py-kokoro/files/kokoro-text-to-wav.py
50284 views
1
#!%%PYTHON%%
2
3
import sys
4
import os
5
import shutil
6
from datetime import datetime
7
from kokoro import KPipeline
8
import soundfile as sf
9
10
def main():
11
if len(sys.argv) != 3:
12
print("Usage: kokoro-text-to-wav <text> <wav-output-file>", file=sys.stderr)
13
sys.exit(1)
14
15
text = sys.argv[1]
16
output_file = sys.argv[2]
17
18
timestamp = datetime.now().strftime("%Y%m%d%H%M%S%f")
19
temp_dir = f"/tmp/kokoro-{timestamp}"
20
21
try:
22
os.makedirs(temp_dir, exist_ok=True)
23
24
pipeline = KPipeline(lang_code='a')
25
generator = pipeline(text, voice='af_heart')
26
27
audio_data = None
28
for _, _, audio in generator:
29
audio_data = audio
30
31
if audio_data is not None:
32
sf.write(output_file, audio_data, 24000)
33
else:
34
print("Error: No audio generated", file=sys.stderr)
35
sys.exit(1)
36
37
finally:
38
if os.path.exists(temp_dir):
39
shutil.rmtree(temp_dir)
40
41
if __name__ == '__main__':
42
main()
43
44