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