Skip to main content

A wrapper of well-known translators that transform text into its phonetic transcription

Project description

Transcriber Wrapper

Code style: black Coverage Lines of Code

Inspired by Phonemizer, this a simpler version focused in transcription applications that work with IPA (International Phonetic Alphabet). This works like a wrapper which is responsible to call a back-end application, let's say espeak-ng. It adds some features on top of it like with stress option.

Supported back-ends

Usage

You need to install espeak-ng and festival on your operational system. See Dockerfile.dev as an example. After that, you can create a transcriber and then use it in your logic:

from typing import List

import transcriber_wrapper

# The standard language is "en-us"
# The standard back-end is "espeak"
transcriber_en_us = transcriber_wrapper.build_transcriber()

def do_the_thing(words: List[str]) -> List[str]:
    return transcriber_en_us.transcribe(words)

Don't forget to see test_builder.py to get insights how to use this project!

Development

Executing commands directly on the binaries

After building the remote interpreter service, just enter in it:

docker-compose run remote-interpreter sh

You must be at /usr/bin/. Then try one of these below.

eSpeakNG

Check out these links:

Some sample commands:

espeak-ng "Hello my friend, stay awhile and listen!" -ven-us -x --ipa -q --sep=_
espeak-ng "Curiosity" -ven-us -x --ipa -q --sep=" "
espeak-ng "If you will not bow before a sultan, then you will cower before a sorcerer!" -ven-us -x --ipa -q
espeak-ng --voices

Festival

You can execute festival --help to get a list of what you can do through what the festival developers call "Shell API" (see more details here).

You can use the script festival.lisp to get the computation from a given word, some samples:

WORD=something festival -b /app/scripts/festival.lisp
WORD=theoretically festival -b /app/scripts/festival.lisp

What you can do is just type festival and then start its command line prompt. From there you can do the following for example:

# It will list voices available
festival> (voice.list)
# Default voice
festival> voice_default
# This won't work with our Docker image, but if you are on your ubuntu/debian machine, it may will
(SayText "Can someone refactor festival to be writen in Python with a friendly API?") 

Updating pipenv dependencies

If you update Pipfile, you can issue the following command to refresh your lock file:

docker-compose run remote-interpreter pipenv update

If you'd like to add a new package, let's say a production one:

docker-compose run remote-interpreter pipenv install pyparsing

Don't forget to update your service!

docker-compose build remote-interpreter

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

transcriber-wrapper-1.2.1.tar.gz (22.8 kB view hashes)

Uploaded Source

Built Distribution

transcriber_wrapper-1.2.1-py3-none-any.whl (29.0 kB view hashes)

Uploaded Python 3

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