Skip to main content

A python wrapper for OpenJTalk

Project description

pyopenjtalk

PyPI Python package Build Status License DOI

A python wrapper for OpenJTalk.

The package consists of two core components:

  • Text processing frontend based on OpenJTalk
  • Speech synthesis backend using HTSEngine

Notice

  • The package is built with the modified version of OpenJTalk. The modified version provides the same functionality with some improvements (e.g., cmake support) but is technically different from the one from HTS working group.
  • The package also uses the modified version of hts_engine_API. The same applies as above.

Before using the pyopenjtalk package, please have a look at the LICENSE for the two software.

Build requirements

The python package relies on cython to make python bindings for open_jtalk and hts_engine_API. You must need the following tools to build and install pyopenjtalk:

  • C/C++ compilers (to build C/C++ extentions)
  • cmake
  • cython

Supported platforms

  • Linux
  • Mac OSX
  • Windows (MSVC) (see this PR)

Installation

pip install pyopenjtalk

Development

To build the package locally, you will need to make sure to clone open_jtalk and hts_engine_API.

git submodule update --recursive --init

and then run

pip install -e .

Quick demo

Please check the notebook version here (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))

Run text processing frontend only

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']

Please check lab_format.pdf in HTS-demo_NIT-ATR503-M001.tar.bz2 for more details about full-context labels.

Grapheme-to-phoeneme (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]: 'コンニチワ'

About run_marine option

After v0.3.0, the run_marine option has been available for estimating the Japanese accent with the DNN-based method (see marine). If you want to use the feature, please install pyopenjtalk as below;

pip install pyopenjtalk[marine]

And then, you can use the option as the following examples;

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

LICENSE

Acknowledgements

HTS Working Group for their dedicated efforts to develop and maintain Open JTalk.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openjtalk-0.3.0.dev3.tar.gz (24.9 MB view details)

Uploaded Source

Built Distributions

openjtalk-0.3.0.dev3-cp311-cp311-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.11 Windows x86-64

openjtalk-0.3.0.dev3-cp310-cp310-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.10 Windows x86-64

openjtalk-0.3.0.dev3-cp39-cp39-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.9 Windows x86-64

openjtalk-0.3.0.dev3-cp38-cp38-win_amd64.whl (24.6 MB view details)

Uploaded CPython 3.8 Windows x86-64

File details

Details for the file openjtalk-0.3.0.dev3.tar.gz.

File metadata

  • Download URL: openjtalk-0.3.0.dev3.tar.gz
  • Upload date:
  • Size: 24.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for openjtalk-0.3.0.dev3.tar.gz
Algorithm Hash digest
SHA256 0f03a09ef6daa461aba469270b508c0a76a9dcdf3ede73949e538dc949c68a6c
MD5 c73792f93aea6c17f4ce6a09b1e463c7
BLAKE2b-256 1515fb29ebea31d9b0fbe72b8547c9221dda17df8e23e3b4f2eb326eec07966a

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16de222e7fd0e16e8a9f1cb228dcab7e8635927e51f2f31dfdcd34dd083fa391
MD5 fd290cee2cb6c6f83ffee1996968517a
BLAKE2b-256 f0deeb70398883af9b07cfd3a906e0baec27a092b0d445f4243b0059719e0238

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f4bade3531e08cc4588ec1983f6bb6c3acf0260081e28b8c5663d9855c9a2a49
MD5 d5464a3ae1f283ffd4d48bf357ca92f5
BLAKE2b-256 9e561ba2b4abd6d63f32b85ba80e68caf1a8f52527adb6ca24ddb1a621a0c278

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5508acb589b82a03db5a01a138031d5e8e2da87e862fbfc27c74bf541d26bf1
MD5 45226d1c312c728b8f1f825d77a704c2
BLAKE2b-256 207be4a6fd807a7fc47902911a135825dda170b8c3d9ebf754b6181ce5c1bc3b

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 852609e579c379489a1239d81ad3690363337b077dd0c1dac644cfcb0fa1f949
MD5 04aeb5475b470a4d428498e232b450a2
BLAKE2b-256 d4c0e25c93e0547c3d5db5e2a572a2955c6377f6d0a889ee3eeb697a91616444

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5cc67a123aed2ea25e4bd6e894fb4e73f47f7ca21ac2033d625b19029f583085
MD5 035e16063afefc8b83378390d473af15
BLAKE2b-256 6c7b412a634ba4bb81c0e963e832ba346f0915598ecf15a1790f4524e310cdb5

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 44698ad23c39d4f2efceacd86e10b00622c5872fa5a36e2bd3f0d48c77605961
MD5 3a43fdd3a911b5e6a2d3aa714d0326a7
BLAKE2b-256 a49e47b829e7b7397a8227518e9e8ba4a249d8b70dfcac1308c6ef0df4ee2418

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bf62a99bb069e658e49613159924e7463764ddc5cc0af754503f4aeeebd14ad
MD5 db8abb19449503d9a4b7d9b195fa4bb0
BLAKE2b-256 688872050bac26b2bcc332fdbaf8fbec126e1f5651f5f4b7bf8eae10aa4e0e9b

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4b57e80367a0dcfa25c3f0339cdf419158a211226b2bfa77cc8f44c25e63f729
MD5 59a76aca6450b784024cb62d34f9faaf
BLAKE2b-256 d479cdd62f570c8591dd5698d45f748a07afc523e6c4396e33dabdd853ae102d

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18b824705aafb7ef3a67b9c897b5196b478789f87b6ec3dd5a7adf468fa23bcc
MD5 5d4667e4a4072fd967d34ccce87b6a37
BLAKE2b-256 9f29dbd37c038605f65e46541c2648d6dfe1a35e555efc8b9aff70fe200b2def

See more details on using hashes here.

File details

Details for the file openjtalk-0.3.0.dev3-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openjtalk-0.3.0.dev3-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3ee9ef6df3c796797774451ddace99871727818c54e193d7cd8ef04fc89d787
MD5 a0957391cb47d9f8e1467046e556b8cf
BLAKE2b-256 1ec27c0e7b56d262dd550695aad888e467a688cb6ef8221f49f1dcb9fd247100

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page