summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2018-02-28 22:10:13 +0000
committerwiz <wiz@pkgsrc.org>2018-02-28 22:10:13 +0000
commitc71fe0afc74be2a2c0d3cf0fd42c0d033e8c8853 (patch)
tree6ab245be7b34ac31163f6159d50d17bb9434775d /audio
parentc7bc03ef7f9f965e9b91f32becbaa688e7751981 (diff)
downloadpkgsrc-c71fe0afc74be2a2c0d3cf0fd42c0d033e8c8853.tar.gz
audio/aeneas: import aeneas-1.7.3
aeneas is a Python/C library and a set of tools to automagically synchronize audio and text. aeneas automatically generates a synchronization map between a list of text fragments and an audio file containing the narration of the text. In computer science this task is known as (automatically computing a) forced alignment.
Diffstat (limited to 'audio')
-rw-r--r--audio/aeneas/DESCR7
-rw-r--r--audio/aeneas/Makefile25
-rw-r--r--audio/aeneas/PLIST360
-rw-r--r--audio/aeneas/distinfo7
-rw-r--r--audio/aeneas/patches/patch-setup.py15
5 files changed, 414 insertions, 0 deletions
diff --git a/audio/aeneas/DESCR b/audio/aeneas/DESCR
new file mode 100644
index 00000000000..b53dc3f6114
--- /dev/null
+++ b/audio/aeneas/DESCR
@@ -0,0 +1,7 @@
+aeneas is a Python/C library and a set of tools to automagically
+synchronize audio and text.
+
+aeneas automatically generates a synchronization map between a list
+of text fragments and an audio file containing the narration of
+the text. In computer science this task is known as (automatically
+computing a) forced alignment.
diff --git a/audio/aeneas/Makefile b/audio/aeneas/Makefile
new file mode 100644
index 00000000000..5005fbbdf3e
--- /dev/null
+++ b/audio/aeneas/Makefile
@@ -0,0 +1,25 @@
+# $NetBSD: Makefile,v 1.1 2018/02/28 22:10:13 wiz Exp $
+
+DISTNAME= aeneas-1.7.3
+CATEGORIES= nih
+MASTER_SITES= ${MASTER_SITE_GITHUB:=readbeyond/}
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+HOMEPAGE= https://github.com/readbeyond/aeneas/
+COMMENT= Automagically synchronize audio and text
+LICENSE= gnu-agpl-v3
+
+USE_LANGUAGES= c c++
+
+DEPENDS+= ${PYPKGPREFIX}-beautifulsoup4-[0-9]*:../../www/py-beautifulsoup4
+DEPENDS+= ${PYPKGPREFIX}-lxml-[0-9]*:../../textproc/py-lxml
+
+MAKE_ENV+= AENEAS_FORCE_CEW=True
+EGG_NAME= ${DISTNAME}.0
+
+.include "../../lang/python/egg.mk"
+.include "../../audio/espeak/buildlink3.mk"
+.include "../../math/py-numpy/buildlink3.mk"
+.include "../../multimedia/ffmpeg3/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/audio/aeneas/PLIST b/audio/aeneas/PLIST
new file mode 100644
index 00000000000..ab86979bcc2
--- /dev/null
+++ b/audio/aeneas/PLIST
@@ -0,0 +1,360 @@
+@comment $NetBSD: PLIST,v 1.1 2018/02/28 22:10:13 wiz Exp $
+bin/aeneas_check_setup
+bin/aeneas_convert_syncmap
+bin/aeneas_download
+bin/aeneas_execute_job
+bin/aeneas_execute_task
+bin/aeneas_plot_waveform
+bin/aeneas_synthesize_text
+bin/aeneas_validate
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/aeneas/README.md
+${PYSITELIB}/aeneas/__init__.py
+${PYSITELIB}/aeneas/__init__.pyc
+${PYSITELIB}/aeneas/__init__.pyo
+${PYSITELIB}/aeneas/adjustboundaryalgorithm.py
+${PYSITELIB}/aeneas/adjustboundaryalgorithm.pyc
+${PYSITELIB}/aeneas/adjustboundaryalgorithm.pyo
+${PYSITELIB}/aeneas/analyzecontainer.py
+${PYSITELIB}/aeneas/analyzecontainer.pyc
+${PYSITELIB}/aeneas/analyzecontainer.pyo
+${PYSITELIB}/aeneas/audiofile.py
+${PYSITELIB}/aeneas/audiofile.pyc
+${PYSITELIB}/aeneas/audiofile.pyo
+${PYSITELIB}/aeneas/audiofilemfcc.py
+${PYSITELIB}/aeneas/audiofilemfcc.pyc
+${PYSITELIB}/aeneas/audiofilemfcc.pyo
+${PYSITELIB}/aeneas/cdtw/README.md
+${PYSITELIB}/aeneas/cdtw/__init__.py
+${PYSITELIB}/aeneas/cdtw/__init__.pyc
+${PYSITELIB}/aeneas/cdtw/__init__.pyo
+${PYSITELIB}/aeneas/cdtw/cdtw.so
+${PYSITELIB}/aeneas/cdtw/cdtw_driver.c
+${PYSITELIB}/aeneas/cdtw/cdtw_func.c
+${PYSITELIB}/aeneas/cdtw/cdtw_func.h
+${PYSITELIB}/aeneas/cdtw/cdtw_py.c
+${PYSITELIB}/aeneas/cdtw/cdtw_setup.py
+${PYSITELIB}/aeneas/cdtw/cdtw_setup.pyc
+${PYSITELIB}/aeneas/cdtw/cdtw_setup.pyo
+${PYSITELIB}/aeneas/cew/README.md
+${PYSITELIB}/aeneas/cew/__init__.py
+${PYSITELIB}/aeneas/cew/__init__.pyc
+${PYSITELIB}/aeneas/cew/__init__.pyo
+${PYSITELIB}/aeneas/cew/cew.so
+${PYSITELIB}/aeneas/cew/cew_func.h
+${PYSITELIB}/aeneas/cew/cew_setup.py
+${PYSITELIB}/aeneas/cew/cew_setup.pyc
+${PYSITELIB}/aeneas/cew/cew_setup.pyo
+${PYSITELIB}/aeneas/cew/speak_lib.h
+${PYSITELIB}/aeneas/cewsubprocess.py
+${PYSITELIB}/aeneas/cewsubprocess.pyc
+${PYSITELIB}/aeneas/cewsubprocess.pyo
+${PYSITELIB}/aeneas/cfw/__init__.py
+${PYSITELIB}/aeneas/cfw/__init__.pyc
+${PYSITELIB}/aeneas/cfw/__init__.pyo
+${PYSITELIB}/aeneas/cfw/cfw_setup.py
+${PYSITELIB}/aeneas/cfw/cfw_setup.pyc
+${PYSITELIB}/aeneas/cfw/cfw_setup.pyo
+${PYSITELIB}/aeneas/cmfcc/README.md
+${PYSITELIB}/aeneas/cmfcc/__init__.py
+${PYSITELIB}/aeneas/cmfcc/__init__.pyc
+${PYSITELIB}/aeneas/cmfcc/__init__.pyo
+${PYSITELIB}/aeneas/cmfcc/cmfcc.so
+${PYSITELIB}/aeneas/cmfcc/cmfcc_driver.c
+${PYSITELIB}/aeneas/cmfcc/cmfcc_func.c
+${PYSITELIB}/aeneas/cmfcc/cmfcc_func.h
+${PYSITELIB}/aeneas/cmfcc/cmfcc_py.c
+${PYSITELIB}/aeneas/cmfcc/cmfcc_setup.py
+${PYSITELIB}/aeneas/cmfcc/cmfcc_setup.pyc
+${PYSITELIB}/aeneas/cmfcc/cmfcc_setup.pyo
+${PYSITELIB}/aeneas/configuration.py
+${PYSITELIB}/aeneas/configuration.pyc
+${PYSITELIB}/aeneas/configuration.pyo
+${PYSITELIB}/aeneas/container.py
+${PYSITELIB}/aeneas/container.pyc
+${PYSITELIB}/aeneas/container.pyo
+${PYSITELIB}/aeneas/cwave/README.md
+${PYSITELIB}/aeneas/cwave/__init__.py
+${PYSITELIB}/aeneas/cwave/__init__.pyc
+${PYSITELIB}/aeneas/cwave/__init__.pyo
+${PYSITELIB}/aeneas/cwave/cwave_driver.c
+${PYSITELIB}/aeneas/cwave/cwave_func.c
+${PYSITELIB}/aeneas/cwave/cwave_func.h
+${PYSITELIB}/aeneas/cwave/cwave_py.c
+${PYSITELIB}/aeneas/cwave/cwave_setup.py
+${PYSITELIB}/aeneas/cwave/cwave_setup.pyc
+${PYSITELIB}/aeneas/cwave/cwave_setup.pyo
+${PYSITELIB}/aeneas/diagnostics.py
+${PYSITELIB}/aeneas/diagnostics.pyc
+${PYSITELIB}/aeneas/diagnostics.pyo
+${PYSITELIB}/aeneas/downloader.py
+${PYSITELIB}/aeneas/downloader.pyc
+${PYSITELIB}/aeneas/downloader.pyo
+${PYSITELIB}/aeneas/dtw.py
+${PYSITELIB}/aeneas/dtw.pyc
+${PYSITELIB}/aeneas/dtw.pyo
+${PYSITELIB}/aeneas/exacttiming.py
+${PYSITELIB}/aeneas/exacttiming.pyc
+${PYSITELIB}/aeneas/exacttiming.pyo
+${PYSITELIB}/aeneas/executejob.py
+${PYSITELIB}/aeneas/executejob.pyc
+${PYSITELIB}/aeneas/executejob.pyo
+${PYSITELIB}/aeneas/executetask.py
+${PYSITELIB}/aeneas/executetask.pyc
+${PYSITELIB}/aeneas/executetask.pyo
+${PYSITELIB}/aeneas/extra/README.md
+${PYSITELIB}/aeneas/extra/__init__.py
+${PYSITELIB}/aeneas/extra/__init__.pyc
+${PYSITELIB}/aeneas/extra/__init__.pyo
+${PYSITELIB}/aeneas/extra/ctw_espeak.py
+${PYSITELIB}/aeneas/extra/ctw_espeak.pyc
+${PYSITELIB}/aeneas/extra/ctw_espeak.pyo
+${PYSITELIB}/aeneas/extra/ctw_speect.py
+${PYSITELIB}/aeneas/extra/ctw_speect.pyc
+${PYSITELIB}/aeneas/extra/ctw_speect.pyo
+${PYSITELIB}/aeneas/ffmpegwrapper.py
+${PYSITELIB}/aeneas/ffmpegwrapper.pyc
+${PYSITELIB}/aeneas/ffmpegwrapper.pyo
+${PYSITELIB}/aeneas/ffprobewrapper.py
+${PYSITELIB}/aeneas/ffprobewrapper.pyc
+${PYSITELIB}/aeneas/ffprobewrapper.pyo
+${PYSITELIB}/aeneas/globalconstants.py
+${PYSITELIB}/aeneas/globalconstants.pyc
+${PYSITELIB}/aeneas/globalconstants.pyo
+${PYSITELIB}/aeneas/globalfunctions.py
+${PYSITELIB}/aeneas/globalfunctions.pyc
+${PYSITELIB}/aeneas/globalfunctions.pyo
+${PYSITELIB}/aeneas/hierarchytype.py
+${PYSITELIB}/aeneas/hierarchytype.pyc
+${PYSITELIB}/aeneas/hierarchytype.pyo
+${PYSITELIB}/aeneas/idsortingalgorithm.py
+${PYSITELIB}/aeneas/idsortingalgorithm.pyc
+${PYSITELIB}/aeneas/idsortingalgorithm.pyo
+${PYSITELIB}/aeneas/job.py
+${PYSITELIB}/aeneas/job.pyc
+${PYSITELIB}/aeneas/job.pyo
+${PYSITELIB}/aeneas/language.py
+${PYSITELIB}/aeneas/language.pyc
+${PYSITELIB}/aeneas/language.pyo
+${PYSITELIB}/aeneas/logger.py
+${PYSITELIB}/aeneas/logger.pyc
+${PYSITELIB}/aeneas/logger.pyo
+${PYSITELIB}/aeneas/mfcc.py
+${PYSITELIB}/aeneas/mfcc.pyc
+${PYSITELIB}/aeneas/mfcc.pyo
+${PYSITELIB}/aeneas/plotter.py
+${PYSITELIB}/aeneas/plotter.pyc
+${PYSITELIB}/aeneas/plotter.pyo
+${PYSITELIB}/aeneas/res/LiberationMono-Regular.ttf
+${PYSITELIB}/aeneas/res/__init__.py
+${PYSITELIB}/aeneas/res/__init__.pyc
+${PYSITELIB}/aeneas/res/__init__.pyo
+${PYSITELIB}/aeneas/res/finetuneas.html
+${PYSITELIB}/aeneas/runtimeconfiguration.py
+${PYSITELIB}/aeneas/runtimeconfiguration.pyc
+${PYSITELIB}/aeneas/runtimeconfiguration.pyo
+${PYSITELIB}/aeneas/sd.py
+${PYSITELIB}/aeneas/sd.pyc
+${PYSITELIB}/aeneas/sd.pyo
+${PYSITELIB}/aeneas/syncmap/__init__.py
+${PYSITELIB}/aeneas/syncmap/__init__.pyc
+${PYSITELIB}/aeneas/syncmap/__init__.pyo
+${PYSITELIB}/aeneas/syncmap/format.py
+${PYSITELIB}/aeneas/syncmap/format.pyc
+${PYSITELIB}/aeneas/syncmap/format.pyo
+${PYSITELIB}/aeneas/syncmap/fragment.py
+${PYSITELIB}/aeneas/syncmap/fragment.pyc
+${PYSITELIB}/aeneas/syncmap/fragment.pyo
+${PYSITELIB}/aeneas/syncmap/fragmentlist.py
+${PYSITELIB}/aeneas/syncmap/fragmentlist.pyc
+${PYSITELIB}/aeneas/syncmap/fragmentlist.pyo
+${PYSITELIB}/aeneas/syncmap/headtailformat.py
+${PYSITELIB}/aeneas/syncmap/headtailformat.pyc
+${PYSITELIB}/aeneas/syncmap/headtailformat.pyo
+${PYSITELIB}/aeneas/syncmap/missingparametererror.py
+${PYSITELIB}/aeneas/syncmap/missingparametererror.pyc
+${PYSITELIB}/aeneas/syncmap/missingparametererror.pyo
+${PYSITELIB}/aeneas/syncmap/smfaudacity.py
+${PYSITELIB}/aeneas/syncmap/smfaudacity.pyc
+${PYSITELIB}/aeneas/syncmap/smfaudacity.pyo
+${PYSITELIB}/aeneas/syncmap/smfbase.py
+${PYSITELIB}/aeneas/syncmap/smfbase.pyc
+${PYSITELIB}/aeneas/syncmap/smfbase.pyo
+${PYSITELIB}/aeneas/syncmap/smfcsv.py
+${PYSITELIB}/aeneas/syncmap/smfcsv.pyc
+${PYSITELIB}/aeneas/syncmap/smfcsv.pyo
+${PYSITELIB}/aeneas/syncmap/smfeaf.py
+${PYSITELIB}/aeneas/syncmap/smfeaf.pyc
+${PYSITELIB}/aeneas/syncmap/smfeaf.pyo
+${PYSITELIB}/aeneas/syncmap/smfgsubtitles.py
+${PYSITELIB}/aeneas/syncmap/smfgsubtitles.pyc
+${PYSITELIB}/aeneas/syncmap/smfgsubtitles.pyo
+${PYSITELIB}/aeneas/syncmap/smfgtabular.py
+${PYSITELIB}/aeneas/syncmap/smfgtabular.pyc
+${PYSITELIB}/aeneas/syncmap/smfgtabular.pyo
+${PYSITELIB}/aeneas/syncmap/smfgxml.py
+${PYSITELIB}/aeneas/syncmap/smfgxml.pyc
+${PYSITELIB}/aeneas/syncmap/smfgxml.pyo
+${PYSITELIB}/aeneas/syncmap/smfjson.py
+${PYSITELIB}/aeneas/syncmap/smfjson.pyc
+${PYSITELIB}/aeneas/syncmap/smfjson.pyo
+${PYSITELIB}/aeneas/syncmap/smfrbse.py
+${PYSITELIB}/aeneas/syncmap/smfrbse.pyc
+${PYSITELIB}/aeneas/syncmap/smfrbse.pyo
+${PYSITELIB}/aeneas/syncmap/smfsmil.py
+${PYSITELIB}/aeneas/syncmap/smfsmil.pyc
+${PYSITELIB}/aeneas/syncmap/smfsmil.pyo
+${PYSITELIB}/aeneas/syncmap/smfsrt.py
+${PYSITELIB}/aeneas/syncmap/smfsrt.pyc
+${PYSITELIB}/aeneas/syncmap/smfsrt.pyo
+${PYSITELIB}/aeneas/syncmap/smfssv.py
+${PYSITELIB}/aeneas/syncmap/smfssv.pyc
+${PYSITELIB}/aeneas/syncmap/smfssv.pyo
+${PYSITELIB}/aeneas/syncmap/smfsub.py
+${PYSITELIB}/aeneas/syncmap/smfsub.pyc
+${PYSITELIB}/aeneas/syncmap/smfsub.pyo
+${PYSITELIB}/aeneas/syncmap/smftextgrid.py
+${PYSITELIB}/aeneas/syncmap/smftextgrid.pyc
+${PYSITELIB}/aeneas/syncmap/smftextgrid.pyo
+${PYSITELIB}/aeneas/syncmap/smftsv.py
+${PYSITELIB}/aeneas/syncmap/smftsv.pyc
+${PYSITELIB}/aeneas/syncmap/smftsv.pyo
+${PYSITELIB}/aeneas/syncmap/smfttml.py
+${PYSITELIB}/aeneas/syncmap/smfttml.pyc
+${PYSITELIB}/aeneas/syncmap/smfttml.pyo
+${PYSITELIB}/aeneas/syncmap/smftxt.py
+${PYSITELIB}/aeneas/syncmap/smftxt.pyc
+${PYSITELIB}/aeneas/syncmap/smftxt.pyo
+${PYSITELIB}/aeneas/syncmap/smfvtt.py
+${PYSITELIB}/aeneas/syncmap/smfvtt.pyc
+${PYSITELIB}/aeneas/syncmap/smfvtt.pyo
+${PYSITELIB}/aeneas/syncmap/smfxml.py
+${PYSITELIB}/aeneas/syncmap/smfxml.pyc
+${PYSITELIB}/aeneas/syncmap/smfxml.pyo
+${PYSITELIB}/aeneas/syncmap/smfxmllegacy.py
+${PYSITELIB}/aeneas/syncmap/smfxmllegacy.pyc
+${PYSITELIB}/aeneas/syncmap/smfxmllegacy.pyo
+${PYSITELIB}/aeneas/synthesizer.py
+${PYSITELIB}/aeneas/synthesizer.pyc
+${PYSITELIB}/aeneas/synthesizer.pyo
+${PYSITELIB}/aeneas/task.py
+${PYSITELIB}/aeneas/task.pyc
+${PYSITELIB}/aeneas/task.pyo
+${PYSITELIB}/aeneas/textfile.py
+${PYSITELIB}/aeneas/textfile.pyc
+${PYSITELIB}/aeneas/textfile.pyo
+${PYSITELIB}/aeneas/tools/README.md
+${PYSITELIB}/aeneas/tools/__init__.py
+${PYSITELIB}/aeneas/tools/__init__.pyc
+${PYSITELIB}/aeneas/tools/__init__.pyo
+${PYSITELIB}/aeneas/tools/abstract_cli_program.py
+${PYSITELIB}/aeneas/tools/abstract_cli_program.pyc
+${PYSITELIB}/aeneas/tools/abstract_cli_program.pyo
+${PYSITELIB}/aeneas/tools/convert_syncmap.py
+${PYSITELIB}/aeneas/tools/convert_syncmap.pyc
+${PYSITELIB}/aeneas/tools/convert_syncmap.pyo
+${PYSITELIB}/aeneas/tools/download.py
+${PYSITELIB}/aeneas/tools/download.pyc
+${PYSITELIB}/aeneas/tools/download.pyo
+${PYSITELIB}/aeneas/tools/execute_job.py
+${PYSITELIB}/aeneas/tools/execute_job.pyc
+${PYSITELIB}/aeneas/tools/execute_job.pyo
+${PYSITELIB}/aeneas/tools/execute_task.py
+${PYSITELIB}/aeneas/tools/execute_task.pyc
+${PYSITELIB}/aeneas/tools/execute_task.pyo
+${PYSITELIB}/aeneas/tools/extract_mfcc.py
+${PYSITELIB}/aeneas/tools/extract_mfcc.pyc
+${PYSITELIB}/aeneas/tools/extract_mfcc.pyo
+${PYSITELIB}/aeneas/tools/ffmpeg_wrapper.py
+${PYSITELIB}/aeneas/tools/ffmpeg_wrapper.pyc
+${PYSITELIB}/aeneas/tools/ffmpeg_wrapper.pyo
+${PYSITELIB}/aeneas/tools/ffprobe_wrapper.py
+${PYSITELIB}/aeneas/tools/ffprobe_wrapper.pyc
+${PYSITELIB}/aeneas/tools/ffprobe_wrapper.pyo
+${PYSITELIB}/aeneas/tools/hydra.py
+${PYSITELIB}/aeneas/tools/hydra.pyc
+${PYSITELIB}/aeneas/tools/hydra.pyo
+${PYSITELIB}/aeneas/tools/plot_waveform.py
+${PYSITELIB}/aeneas/tools/plot_waveform.pyc
+${PYSITELIB}/aeneas/tools/plot_waveform.pyo
+${PYSITELIB}/aeneas/tools/read_audio.py
+${PYSITELIB}/aeneas/tools/read_audio.pyc
+${PYSITELIB}/aeneas/tools/read_audio.pyo
+${PYSITELIB}/aeneas/tools/read_text.py
+${PYSITELIB}/aeneas/tools/read_text.pyc
+${PYSITELIB}/aeneas/tools/read_text.pyo
+${PYSITELIB}/aeneas/tools/res/audio.mp3
+${PYSITELIB}/aeneas/tools/res/audio.wav
+${PYSITELIB}/aeneas/tools/res/config.bad.txt
+${PYSITELIB}/aeneas/tools/res/config.bad.xml
+${PYSITELIB}/aeneas/tools/res/config.txt
+${PYSITELIB}/aeneas/tools/res/config.xml
+${PYSITELIB}/aeneas/tools/res/job.bad.zip
+${PYSITELIB}/aeneas/tools/res/job.zip
+${PYSITELIB}/aeneas/tools/res/job_no_config.zip
+${PYSITELIB}/aeneas/tools/res/mplain.txt
+${PYSITELIB}/aeneas/tools/res/munparsed.xhtml
+${PYSITELIB}/aeneas/tools/res/munparsed2.xhtml
+${PYSITELIB}/aeneas/tools/res/page.xhtml
+${PYSITELIB}/aeneas/tools/res/parsed.txt
+${PYSITELIB}/aeneas/tools/res/plain.txt
+${PYSITELIB}/aeneas/tools/res/sonnet.csv
+${PYSITELIB}/aeneas/tools/res/sonnet.json
+${PYSITELIB}/aeneas/tools/res/sonnet.vad
+${PYSITELIB}/aeneas/tools/res/sonnet.zzz
+${PYSITELIB}/aeneas/tools/res/subtitles.txt
+${PYSITELIB}/aeneas/tools/res/unparsed.xhtml
+${PYSITELIB}/aeneas/tools/res/words.txt
+${PYSITELIB}/aeneas/tools/run_sd.py
+${PYSITELIB}/aeneas/tools/run_sd.pyc
+${PYSITELIB}/aeneas/tools/run_sd.pyo
+${PYSITELIB}/aeneas/tools/run_vad.py
+${PYSITELIB}/aeneas/tools/run_vad.pyc
+${PYSITELIB}/aeneas/tools/run_vad.pyo
+${PYSITELIB}/aeneas/tools/synthesize_text.py
+${PYSITELIB}/aeneas/tools/synthesize_text.pyc
+${PYSITELIB}/aeneas/tools/synthesize_text.pyo
+${PYSITELIB}/aeneas/tools/validate.py
+${PYSITELIB}/aeneas/tools/validate.pyc
+${PYSITELIB}/aeneas/tools/validate.pyo
+${PYSITELIB}/aeneas/tree.py
+${PYSITELIB}/aeneas/tree.pyc
+${PYSITELIB}/aeneas/tree.pyo
+${PYSITELIB}/aeneas/ttswrappers/README.md
+${PYSITELIB}/aeneas/ttswrappers/__init__.py
+${PYSITELIB}/aeneas/ttswrappers/__init__.pyc
+${PYSITELIB}/aeneas/ttswrappers/__init__.pyo
+${PYSITELIB}/aeneas/ttswrappers/awsttswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/awsttswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/awsttswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/basettswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/basettswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/basettswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/espeakngttswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/espeakngttswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/espeakngttswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/espeakttswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/espeakttswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/espeakttswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/festivalttswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/festivalttswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/festivalttswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/macosttswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/macosttswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/macosttswrapper.pyo
+${PYSITELIB}/aeneas/ttswrappers/nuancettswrapper.py
+${PYSITELIB}/aeneas/ttswrappers/nuancettswrapper.pyc
+${PYSITELIB}/aeneas/ttswrappers/nuancettswrapper.pyo
+${PYSITELIB}/aeneas/vad.py
+${PYSITELIB}/aeneas/vad.pyc
+${PYSITELIB}/aeneas/vad.pyo
+${PYSITELIB}/aeneas/validator.py
+${PYSITELIB}/aeneas/validator.pyc
+${PYSITELIB}/aeneas/validator.pyo
+${PYSITELIB}/aeneas/wavfile.py
+${PYSITELIB}/aeneas/wavfile.pyc
+${PYSITELIB}/aeneas/wavfile.pyo
diff --git a/audio/aeneas/distinfo b/audio/aeneas/distinfo
new file mode 100644
index 00000000000..9c84b33909d
--- /dev/null
+++ b/audio/aeneas/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1 2018/02/28 22:10:13 wiz Exp $
+
+SHA1 (aeneas-1.7.3.tar.gz) = f3513c78067db67bf781f8b1b91176b72de5696a
+RMD160 (aeneas-1.7.3.tar.gz) = d0a02582621a06593d78ff72d35abc082a7bc1e5
+SHA512 (aeneas-1.7.3.tar.gz) = 4b661831aa4b614b7953d320a33f07e4a133dfc63c89775dcf9c65eb028950dfe124452430af64d822b855162f3f859e93a9995eac18eb5dd943e9aec3f7a8fa
+Size (aeneas-1.7.3.tar.gz) = 31395640 bytes
+SHA1 (patch-setup.py) = 30980146a202c0b0f146c34fec9af1389acb1908
diff --git a/audio/aeneas/patches/patch-setup.py b/audio/aeneas/patches/patch-setup.py
new file mode 100644
index 00000000000..ccbcd804cf6
--- /dev/null
+++ b/audio/aeneas/patches/patch-setup.py
@@ -0,0 +1,15 @@
+$NetBSD: patch-setup.py,v 1.1 2018/02/28 22:10:13 wiz Exp $
+
+Always build C extension.
+
+--- setup.py.orig 2017-03-16 12:48:53.000000000 +0000
++++ setup.py
+@@ -297,7 +297,7 @@ elif FORCE_CEW:
+ print("[INFO] ")
+ EXTENSIONS.append(EXTENSION_CEW)
+ else:
+- if IS_LINUX:
++ if 1:
+ EXTENSIONS.append(EXTENSION_CEW)
+ elif IS_OSX:
+ print("[INFO] *********************************************************************************")