A python wrapper for OpenJTalk
Project description
pyopenjtalk
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
- pyopenjtalk: MIT license (LICENSE.md)
- Open JTalk: Modified BSD license (COPYING)
- htsvoice in this repository: Please check pyopenjtalk/htsvoice/README.md.
- marine: Apache 2.0 license (LICENSE)
Acknowledgements
HTS Working Group for their dedicated efforts to develop and maintain Open JTalk.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f03a09ef6daa461aba469270b508c0a76a9dcdf3ede73949e538dc949c68a6c |
|
MD5 | c73792f93aea6c17f4ce6a09b1e463c7 |
|
BLAKE2b-256 | 1515fb29ebea31d9b0fbe72b8547c9221dda17df8e23e3b4f2eb326eec07966a |
File details
Details for the file openjtalk-0.3.0.dev3-cp312-cp312-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp312-cp312-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.3 MB
- Tags: CPython 3.12
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16de222e7fd0e16e8a9f1cb228dcab7e8635927e51f2f31dfdcd34dd083fa391 |
|
MD5 | fd290cee2cb6c6f83ffee1996968517a |
|
BLAKE2b-256 | f0deeb70398883af9b07cfd3a906e0baec27a092b0d445f4243b0059719e0238 |
File details
Details for the file openjtalk-0.3.0.dev3-cp311-cp311-win_amd64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 24.6 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f4bade3531e08cc4588ec1983f6bb6c3acf0260081e28b8c5663d9855c9a2a49 |
|
MD5 | d5464a3ae1f283ffd4d48bf357ca92f5 |
|
BLAKE2b-256 | 9e561ba2b4abd6d63f32b85ba80e68caf1a8f52527adb6ca24ddb1a621a0c278 |
File details
Details for the file openjtalk-0.3.0.dev3-cp311-cp311-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp311-cp311-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.2 MB
- Tags: CPython 3.11
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5508acb589b82a03db5a01a138031d5e8e2da87e862fbfc27c74bf541d26bf1 |
|
MD5 | 45226d1c312c728b8f1f825d77a704c2 |
|
BLAKE2b-256 | 207be4a6fd807a7fc47902911a135825dda170b8c3d9ebf754b6181ce5c1bc3b |
File details
Details for the file openjtalk-0.3.0.dev3-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 24.6 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 852609e579c379489a1239d81ad3690363337b077dd0c1dac644cfcb0fa1f949 |
|
MD5 | 04aeb5475b470a4d428498e232b450a2 |
|
BLAKE2b-256 | d4c0e25c93e0547c3d5db5e2a572a2955c6377f6d0a889ee3eeb697a91616444 |
File details
Details for the file openjtalk-0.3.0.dev3-cp310-cp310-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp310-cp310-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.1 MB
- Tags: CPython 3.10
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cc67a123aed2ea25e4bd6e894fb4e73f47f7ca21ac2033d625b19029f583085 |
|
MD5 | 035e16063afefc8b83378390d473af15 |
|
BLAKE2b-256 | 6c7b412a634ba4bb81c0e963e832ba346f0915598ecf15a1790f4524e310cdb5 |
File details
Details for the file openjtalk-0.3.0.dev3-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 24.6 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44698ad23c39d4f2efceacd86e10b00622c5872fa5a36e2bd3f0d48c77605961 |
|
MD5 | 3a43fdd3a911b5e6a2d3aa714d0326a7 |
|
BLAKE2b-256 | a49e47b829e7b7397a8227518e9e8ba4a249d8b70dfcac1308c6ef0df4ee2418 |
File details
Details for the file openjtalk-0.3.0.dev3-cp39-cp39-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp39-cp39-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.1 MB
- Tags: CPython 3.9
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bf62a99bb069e658e49613159924e7463764ddc5cc0af754503f4aeeebd14ad |
|
MD5 | db8abb19449503d9a4b7d9b195fa4bb0 |
|
BLAKE2b-256 | 688872050bac26b2bcc332fdbaf8fbec126e1f5651f5f4b7bf8eae10aa4e0e9b |
File details
Details for the file openjtalk-0.3.0.dev3-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 24.6 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b57e80367a0dcfa25c3f0339cdf419158a211226b2bfa77cc8f44c25e63f729 |
|
MD5 | 59a76aca6450b784024cb62d34f9faaf |
|
BLAKE2b-256 | d479cdd62f570c8591dd5698d45f748a07afc523e6c4396e33dabdd853ae102d |
File details
Details for the file openjtalk-0.3.0.dev3-cp38-cp38-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp38-cp38-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.2 MB
- Tags: CPython 3.8
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18b824705aafb7ef3a67b9c897b5196b478789f87b6ec3dd5a7adf468fa23bcc |
|
MD5 | 5d4667e4a4072fd967d34ccce87b6a37 |
|
BLAKE2b-256 | 9f29dbd37c038605f65e46541c2648d6dfe1a35e555efc8b9aff70fe200b2def |
File details
Details for the file openjtalk-0.3.0.dev3-cp37-cp37m-manylinux2014_x86_64.whl
.
File metadata
- Download URL: openjtalk-0.3.0.dev3-cp37-cp37m-manylinux2014_x86_64.whl
- Upload date:
- Size: 30.2 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3ee9ef6df3c796797774451ddace99871727818c54e193d7cd8ef04fc89d787 |
|
MD5 | a0957391cb47d9f8e1467046e556b8cf |
|
BLAKE2b-256 | 1ec27c0e7b56d262dd550695aad888e467a688cb6ef8221f49f1dcb9fd247100 |