diff --git a/misc/py-kokoro/Makefile b/misc/py-kokoro/Makefile index 2b513062713f..cd8c6aa93df4 100644 --- a/misc/py-kokoro/Makefile +++ b/misc/py-kokoro/Makefile @@ -1,29 +1,37 @@ PORTNAME= kokoro DISTVERSION= 0.9.4 -CATEGORIES= misc python +CATEGORIES= misc python # machine-learning MASTER_SITES= PYPI PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= ports@FreeBSD.org COMMENT= Text-to-speech inference library for Kokoro-82M model WWW= https://github.com/hexgrad/kokoro LICENSE= APACHE20 LICENSE_FILE= ${WRKSRC}/LICENSE BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}huggingface-hub>0:misc/py-huggingface-hub@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}loguru>0:devel/py-loguru@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}misaki>=0.9.4:misc/py-misaki@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}num2words>0:devel/py-num2words@${PY_FLAVOR} \ ${PYNUMPY} \ ${PYTHON_PKGNAMEPREFIX}pytorch>0:misc/py-pytorch@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}spacy>0:textproc/py-spacy@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}transformers>=0:misc/py-transformers@${PY_FLAVOR} +TEST_DEPENDS= mpv:multimedia/mpv USES= python USE_PYTHON= autoplist concurrent pep517 NO_ARCH= yes +TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} + +do-test: + @cd ${WRKSRC} && \ + ${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/example.py && \ + mpv 0.wav + .include diff --git a/misc/py-kokoro/files/example.py b/misc/py-kokoro/files/example.py new file mode 100644 index 000000000000..03dfa69606d9 --- /dev/null +++ b/misc/py-kokoro/files/example.py @@ -0,0 +1,16 @@ +from kokoro import KPipeline +from IPython.display import display, Audio +import soundfile as sf +import torch + +pipeline = KPipeline(lang_code='a') + +text = ''' +FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable home-class hardware, and has since continuously been the most commonly used BSD-derived operating system. +''' + +generator = pipeline(text, voice='af_heart') +for i, (gs, ps, audio) in enumerate(generator): + print(i, gs, ps) + display(Audio(data=audio, rate=24000, autoplay=i==0)) + sf.write(f'{i}.wav', audio, 24000)