跳转到主要内容

OpenJTalk的Python包装器

项目描述

pyopenjtalk

PyPI Python package Build Status License DOI

OpenJTalk的Python包装器。

该包包含两个核心组件

  • 基于OpenJTalk的文本处理前端
  • 使用HTSEngine的语音合成后端

注意

  • 该包使用OpenJTalk的修改版本构建。修改版本提供了相同的功能和一些改进(例如,cmake支持),但与HTS工作组的不同。
  • 该包还使用hts_engine_API的修改版本。同样适用。

在使用pyopenjtalk包之前,请查看两个软件的LICENSE。

构建要求

该Python包依赖于cython来为open_jtalk和hts_engine_API创建Python绑定。您必须需要以下工具来构建和安装pyopenjtalk

  • C/C++编译器(用于构建C/C++扩展)
  • cmake
  • cython

支持的平台

  • Linux
  • Mac OSX
  • Windows (MSVC)(见此PR

安装

pip install pyopenjtalk

开发

要本地构建包,请确保克隆open_jtalk和hts_engine_API。

git submodule update --recursive --init

然后运行

pip install -e .

快速演示

请在此处查看笔记本版本(nbviewer)

文本到语音(TTS)

In [1]: import pyopenjtalk

In [2]: from scipy.io import wavfile

In [3]: x, sr = pyopenjtalk.tts("おめでとうございます")

In [4]: wavfile.write("test.wav", sr, x.astype(np.int16))

仅运行文本处理前端

In [1]: import pyopenjtalk

In [2]: pyopenjtalk.extract_fullcontext("こんにちは")
Out[2]:
['xx^xx-sil+k=o/A:xx+xx+xx/B:xx-xx_xx/C:xx_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:xx_xx#xx_xx@xx_xx|xx_xx/G:5_5%0_xx_xx/H:xx_xx/I:xx-xx@xx+xx&xx-xx|xx+xx/J:1_5/K:1+1-5',
'xx^sil-k+o=N/A:-4+1+5/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'sil^k-o+N=n/A:-4+1+5/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'k^o-N+n=i/A:-3+2+4/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'o^N-n+i=ch/A:-2+3+3/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'N^n-i+ch=i/A:-2+3+3/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'n^i-ch+i=w/A:-1+4+2/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'i^ch-i+w=a/A:-1+4+2/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'ch^i-w+a=sil/A:0+5+1/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'i^w-a+sil=xx/A:0+5+1/B:xx-xx_xx/C:09_xx+xx/D:xx+xx_xx/E:xx_xx!xx_xx-xx/F:5_5#0_xx@1_1|1_5/G:xx_xx%xx_xx_xx/H:xx_xx/I:1-5@1+1&1-1|1+5/J:xx_xx/K:1+1-5',
'w^a-sil+xx=xx/A:xx+xx+xx/B:xx-xx_xx/C:xx_xx+xx/D:xx+xx_xx/E:5_5!0_xx-xx/F:xx_xx#xx_xx@xx_xx|xx_xx/G:xx_xx%xx_xx_xx/H:1_5/I:xx-xx@xx+xx&xx-xx|xx+xx/J:xx_xx/K:1+1-5']

请检查 lab_format.pdf 文件,它位于 HTS-demo_NIT-ATR503-M001.tar.bz2 中,获取关于全上下文标签的更多详细信息。

字符到音素 (G2P)

In [1]: import pyopenjtalk

In [2]: pyopenjtalk.g2p("こんにちは")
Out[2]: 'k o N n i ch i w a'

In [3]: pyopenjtalk.g2p("こんにちは", kana=True)
Out[3]: 'コンニチワ'

关于 run_marine 选项

自 v0.3.0 版本起,run_marine 选项已可用于使用基于 DNN 的方法估计日语口音(参见 marine)。如果您想使用此功能,请按照以下步骤安装 pyopenjtalk:

pip install pyopenjtalk[marine]

然后,您可以使用以下示例使用该选项;

In [1]: import pyopenjtalk

In [2]: x, sr = pyopenjtalk.tts("おめでとうございます", run_marine=True) # for TTS

In [3]: label = pyopenjtalk.extract_fullcontext("こんにちは", run_marine=True) # for text processing frontend only

许可证

致谢

HTS 工作组对开发和维护 Open JTalk 的专注努力表示敬意。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。

源代码分发

pyopenjtalk_prebuilt-0.3.0.tar.gz (1.4 MB 查看散列)

上传时间 源代码

构建分发

pyopenjtalk_prebuilt-0.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.8 MB 查看散列)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.8 MB 查看散列)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.8 MB 查看散列)

上传时间 PyPy manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-win_amd64.whl (919.3 kB 查看散列)

上传时间 CPython 3.11 Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-win32.whl (894.0 kB 查看散列)

上传时间 CPython 3.11 Windows x86

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-musllinux_1_1_aarch64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp311-cp311-macosx_10_9_universal2.whl (1.6 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-win_amd64.whl (921.1 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-win32.whl (895.3 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-musllinux_1_1_aarch64.whl (6.5 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传时间: CPython 3.10 macOS 10.9+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp310-cp310-macosx_10_9_universal2.whl (1.6 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-win_amd64.whl (922.7 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-win32.whl (896.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-musllinux_1_1_aarch64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp39-cp39-macosx_10_9_universal2.whl (1.6 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-win_amd64.whl (922.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-win32.whl (896.4 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-musllinux_1_1_aarch64.whl (6.6 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-macosx_11_0_arm64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp38-cp38-macosx_10_9_universal2.whl (1.6 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-win_amd64.whl (922.0 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-win32.whl (895.7 kB 查看哈希值)

上传于 CPython 3.7m Windows x86

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.7m macOS 10.9+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-win_amd64.whl (981.4 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-win32.whl (944.3 kB 查看哈希值)

上传于 CPython 3.6m Windows x86

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-musllinux_1_1_x86_64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.6m musllinux: musl 1.1+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-musllinux_1_1_i686.whl (6.4 MB 查看哈希值)

上传于 CPython 3.6m musllinux: musl 1.1+ i686

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-musllinux_1_1_aarch64.whl (6.5 MB 查看哈希值)

上传于 CPython 3.6m musllinux: musl 1.1+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.17+ x86-64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.2 MB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.17+ ARM64

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl (6.0 MB 查看哈希值)

上传于 CPython 3.6m manylinux: glibc 2.12+ i686 manylinux: glibc 2.17+ i686

pyopenjtalk_prebuilt-0.3.0-cp36-cp36m-macosx_10_9_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.6m macOS 10.9+ x86-64

由以下支持