espeak-phonemizer/README.md
2021-08-25 17:17:46 -04:00

76 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# eSpeak Phonemizer
Uses [ctypes](https://docs.python.org/3/library/ctypes.html) and [libespeak-ng](https://github.com/espeak-ng/espeak-ng/blob/master/docs/integration.md) to transform text into [IPA](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet) phonemes.
## Installation
First, install libespeak-ng:
```sh
sudo apt-get install libespeak-ng1
```
Next, install espeak_phonemizer:
```sh
pip install espeak_phonemizer
```
If installation was successful, you should be able to run:
```sh
espeak-phonemizer --version
```
## Basic Phonemization
Simply pass your text into the standard input of `espeak-phonemizer`:
```sh
echo 'This is a test.' | espeak-phonemizer -v en-us
ðɪs ɪz ɐ tˈɛst
```
### Separators
Phoneme and word separators can be changed:
```sh
echo 'This is a test.' | espeak-phonemizer -v en-us -p '_' -w '#'
ð_ɪ_s#ɪ_z#ɐ#t_ˈɛ_s_t
```
### Punctuation and Stress
Some punctuation can be kept (.,;:!?) in the output:
```sh
echo 'This: is, a, test.' | espeak-phonemizer -v en-us --keep-punctuation
ðˈɪs: ˈɪz, ˈeɪ, tˈɛst.
```
Stress markers can also be dropped:
```sh
echo 'This is a test.' | espeak-phonemizer -v en-us --no-stress
ðɪs ɪz ɐ tɛst
```
### Delimited Input
The `--csv` flag enables delimited input with fields separated by a '|' (change with `--csv-delimiter`):
```sh
echo 's1|This is a test.' | espeak-phonemizer -v en-us --csv
s1|This is a test.|ðɪs ɪz ɐ tˈɛst
```
Phonemes are added as a final column, allowing you to pass arbitrary metadata through to the output.
### Parallelize with GNU Parallel
```sh
parallel -a /path/to/input.csv --pipepart \
espeak-phonemizer -v en-us --csv \
> /path/to/output.csv
```