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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file transcriber-wrapper-1.2.1.tar.gz.

File metadata

  • Download URL: transcriber-wrapper-1.2.1.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for transcriber-wrapper-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4970dcde90c8d24f7e074098463205a233fab4f56004ee28096f18be36246f31
MD5 60444f65a005431b491ac9dca9816988
BLAKE2b-256 662f30f8a201bd6183446a61d216f80404cf1c10adf9a32d6a6b5dd23072c7c8

See more details on using hashes here.

File details

Details for the file transcriber_wrapper-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: transcriber_wrapper-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for transcriber_wrapper-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 66e3ef611c3d24602adb6a22bc8a36d538c944f4df1ec7f5c36a602a6ff93902
MD5 d66740abfd76cc14fe855312d55c34c1
BLAKE2b-256 2d01de5c762fd0ae408ef9d91c539e0f0ab0dec5d04085c666a1de12f0ae7833

See more details on using hashes here.

Supported by

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