{"id":13826522,"url":"https://github.com/willianantunes/transcriber-wrapper","last_synced_at":"2025-06-16T16:06:02.480Z","repository":{"id":53728225,"uuid":"342930132","full_name":"willianantunes/transcriber-wrapper","owner":"willianantunes","description":"Wrapper of well-known transcribers that transform text into phoneme codes","archived":false,"fork":false,"pushed_at":"2021-04-08T14:40:09.000Z","size":102,"stargazers_count":15,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-20T05:30:51.474Z","etag":null,"topics":["arpabet","espeak-ng","festival-speech-synthesis","international-phonetic-alphabet","ipa","linguistics","mypy","pytest","transcriber","transcription"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/transcriber-wrapper/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willianantunes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-27T18:36:06.000Z","updated_at":"2024-06-14T12:46:33.000Z","dependencies_parsed_at":"2022-09-13T09:02:33.941Z","dependency_job_id":null,"html_url":"https://github.com/willianantunes/transcriber-wrapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianantunes%2Ftranscriber-wrapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianantunes%2Ftranscriber-wrapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianantunes%2Ftranscriber-wrapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willianantunes%2Ftranscriber-wrapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willianantunes","download_url":"https://codeload.github.com/willianantunes/transcriber-wrapper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225839615,"owners_count":17532307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arpabet","espeak-ng","festival-speech-synthesis","international-phonetic-alphabet","ipa","linguistics","mypy","pytest","transcriber","transcription"],"created_at":"2024-08-04T09:01:39.621Z","updated_at":"2024-11-22T04:13:43.596Z","avatar_url":"https://github.com/willianantunes.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Transcriber Wrapper\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=willianantunes_transcriber-wrapper\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=willianantunes_transcriber-wrapper)\n[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=willianantunes_transcriber-wrapper\u0026metric=ncloc)](https://sonarcloud.io/dashboard?id=willianantunes_transcriber-wrapper)\n\nInspired by [Phonemizer](https://github.com/bootphon/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](https://github.com/espeak-ng/espeak-ng). It adds some features on top of it like `with stress` option.\n\n## Supported back-ends\n\n- [eSpeakNG](https://en.wikipedia.org/wiki/ESpeak)\n- [Festival Speech Synthesis System](https://en.wikipedia.org/wiki/Festival_Speech_Synthesis_System)\n\n## Usage\n\nYou need to install espeak-ng and festival on your operational system. See [Dockerfile.dev](./Dockerfile.dev) as an example. After that, you can create a transcriber and then use it in your logic:\n\n```python\nfrom typing import List\n\nimport transcriber_wrapper\n\n# The standard language is \"en-us\"\n# The standard back-end is \"espeak\"\ntranscriber_en_us = transcriber_wrapper.build_transcriber()\n\ndef do_the_thing(words: List[str]) -\u003e List[str]:\n    return transcriber_en_us.transcribe(words)\n```\n\nDon't forget to see [test_builder.py](./tests/int/test_builder.py) to get insights how to use this project!\n\n## Development\n\n### Executing commands directly on the binaries\n\nAfter building the remote interpreter service, just enter in it:\n\n    docker-compose run remote-interpreter sh\n\nYou must be at `/usr/bin/`. Then try one of these below.\n\n#### eSpeakNG\n\nCheck out these links:\n\n- [Supported Languages](https://github.com/espeak-ng/espeak-ng/blob/53915bf0a7cd48f90c4a38ac52fff697723d9f4d/docs/languages.md)\n- [Command Line User Guide](https://github.com/espeak-ng/espeak-ng/blob/53915bf0a7cd48f90c4a38ac52fff697723d9f4d/src/espeak-ng.1.ronn)\n\nSome sample commands:\n\n```shell\nespeak-ng \"Hello my friend, stay awhile and listen!\" -ven-us -x --ipa -q --sep=_\nespeak-ng \"Curiosity\" -ven-us -x --ipa -q --sep=\" \"\nespeak-ng \"If you will not bow before a sultan, then you will cower before a sorcerer!\" -ven-us -x --ipa -q\nespeak-ng --voices\n```\n\n#### Festival\n\nYou 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](http://www.festvox.org/docs/manual-2.4.0/festival_28.html#Shell-API)).\n\nYou can use the script [festival.lisp](./scripts/festival.lisp) to get the computation from a given word, some samples:\n\n```shell\nWORD=something festival -b /app/scripts/festival.lisp\nWORD=theoretically festival -b /app/scripts/festival.lisp\n```\n\nWhat you can do is just type `festival` and then start its command line prompt. From there you can do the following for example:\n\n```shell\n# It will list voices available\nfestival\u003e (voice.list)\n# Default voice\nfestival\u003e voice_default\n# This won't work with our Docker image, but if you are on your ubuntu/debian machine, it may will\n(SayText \"Can someone refactor festival to be writen in Python with a friendly API?\") \n```\n\n### Updating pipenv dependencies\n\nIf you update Pipfile, you can issue the following command to refresh your lock file:\n\n    docker-compose run remote-interpreter pipenv update\n\nIf you'd like to add a new package, let's say a production one:\n\n    docker-compose run remote-interpreter pipenv install pyparsing\n\nDon't forget to update your service!\n\n    docker-compose build remote-interpreter\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillianantunes%2Ftranscriber-wrapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillianantunes%2Ftranscriber-wrapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillianantunes%2Ftranscriber-wrapper/lists"}