Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 21 committers (4.8%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.8%) to scientific vocabulary
Repository
Audiobook alignment for Indigenous languages
Basic Info
- Host: GitHub
- Owner: ReadAlongs
- License: other
- Language: Python
- Default Branch: main
- Homepage: https://readalongs.github.io/Studio/
- Size: 67.9 MB
Statistics
- Stars: 41
- Watchers: 7
- Forks: 22
- Open Issues: 24
- Releases: 9
Metadata Files
README.md
ReadAlong-Studio
Audiobook alignment for Indigenous languages!
This library is an end-to-end audio/text aligner. It is meant to be used together with the ReadAlong-Web-Component to interactively visualize the alignment.
Table of Contents
See also: ReadAlong-Studio documentation.
Background
The concept is a web application with a series of stages of processing, which ultimately leads to a time-aligned audiobook - i.e. a package of:
- ReadAlong XML file describing text
- Audio file (WAV or MP3)
Which can be loaded using the read-along web component. See also Studio Output Realizations.
Optionally a book can be generated as a standalone HTML page, XHTML, Praat TextGrid, ELAN Eaf file, as well as WebVTT or SRT subitle formats.
- (optional) Pre-segment inputs, consisting of:
- Single audio file
- Text with page markings (assume paragraph breaks = pages)
- Input pages: each page consists of
- Image file
- Audio file
- Text
- Run alignment
- View output and download components
Install
The short version
Install FFmpeg and Python 3.8 or higher.
Run:
pip install readalongs
The long version
Installing dependencies
Before you can install the ReadAlong Studio, you will need to install these dependencies:
- Python, version 3.8 or higher,
- FFmpeg,
- a C compiler (sometimes required for some dependant libraries),
- Git (optional, needed to get the current development version).
Dependencies on MacOS
First install Homebrew, then use it to install FFmpeg with brew install ffmpeg.
The compiler should already be on your machine.
Consider Xcode for your XML and text file editor.
Dependencies on Linux
If FFmpeg is not already installed, <your package manager> install ffmpeg should add it.
The compiler should already be there, but run <your package manager> install gcc if not.
Dependencies on Windows
The easy way, using conda
The conda package manager can install Python 3 and the required compiler automatically for you,
and simplifies ffmpeg and git installation. We recommend this solution.
If the Anaconda Terms of Service are compatible with your organization, you can use Miniconda3: download and run the latest "Miniconda3 Windows 64-bit" installer from https://docs.conda.io/en/latest/miniconda.html.
Fully open-source alternative, free for all organizations: Miniforge3. Download and run the latest "Miniforge3-Windows-x86_64" installer from https://github.com/conda-forge/miniforge.
Either way, you can accept all the default options suggested by the installer.
Launch an Anaconda Prompt or a Miniforge Prompt (this should be available from your Start Menu after installation) and run:
conda install ffmpeg
conda install git
You can then run the pip install and git commands below, and use readalongs, all from the Anaconda or Miniforge Prompt.
The hard way
If you know what you're doing, you can install the dependencies directly on your machine:
- Install Python3 for Windows.
- Install FFmpeg builds for Windows (alternative instructions).
- Install Visual Studio Build Tools (search for "Build Tools", select C++ when prompted).
- Install Git for Windows (optional).
Installing ReadAlongs Studio itself
To install the latest published version on PyPI:
pip install readalongs
To install the current development version, clone the repo and pip install it locally:
sh
$ git clone https://github.com/ReadAlongs/Studio.git
$ cd Studio
$ pip install -e .
Verifying your installation
Run readalongs -h to confirm that installation was successful.
If you installed the current development version with Git, you can also run the full test suite (requires installing the dev dependencies):
pip install 'readalongs[dev]' # if you installed from PyPI, or
pip install -e '.[dev]' # if you installed from a local clone
python test/run.py dev
And you can download our open samples on GitHub to run your first alignments.
Usage
ReadAlong-Studio can be used either through the command line, a distributed web application or Docker.
CLI
This page lists only the most basic commands.
For more information about how the command line interface works:
* Consult the CLI User Guide.
* Consult the CLI Reference.
* Invoke any CLI command with -h or --help for usage information. e.g., readalongs --help, readalongs align --help.
Alignment
Basic alignment is done with the following command.
readalongs align TEXTFILE WAVFILE OUTPUTNAME
Web API
This page lists only the most basic commands.
For more information about how the command line interface works consult the interactive API Documentation.
For information on spinning up your own dev Web API server locally, have a look at web_api.py, but briefly, if you are running it locally for development, use:
DEVELOPMENT=1 uvicorn readalongs.web_api:web_api_app --reload
or
./run-web-api.sh
Note that the production command line for the Web API is defined in Procfile and documented in web_api.py.
/langs
To query a list of available languages in the ReadAlong Studio API, send a GET request to https://readalongs-studio.herokuapp.com/api/v1/langs
/assemble
This endpoint is a remote procedural call that assembles the data needed to build a readalong using the JavaScript-based SoundSwallower decoder. It is an endpoint that accepts POST requests with either plaintext or XML input. Please see the documentation for more information.
Studio web application
The ReadAlong-Studio web interface is available at https://readalong-studio.mothertongues.org/ and the source code is available here: https://github.com/ReadAlongs/Studio-Web
Docker
If you are having trouble installing the package, you can also clone the repo and run the studio using Docker.
Working with in a Docker container has the advantage that no matter what your OS is, and what you have installed or configured, you will run on the standard ReadAlong-Studio configuration.
To build the Docker image, run:
docker build . --tag=readalong-studio
To run the web API in a Docker container using that image:
docker run -p 8000:8000 -it readalong-studio
To run the web API with real-time updates:
docker run -p 8000:8000 -it -v $(pwd):/opt/readalong-studio readalong-studio
Then you should be able to test the API at http://localhost:8000/api/v1/docs.
To run the interactive shell with real-time updates:
docker run -p 8000:8000 -it -v $(pwd):/opt/readalong-studio readalong-studio sh
To run an interactive shell, using your local user inside Docker:
docker run -p 8000:8000 -it -v $(pwd):/opt/readalong-studio -u $(id -u):$(id -g) readalong-studio sh
Maintainers
@dhdaines. @littell. @roedoejet. @joanise.
Contributing
Feel free to dive in! Open an issue or submit PRs.
This repo follows the Contributor Covenant Code of Conduct.
You can install our standard Git hooks by running these commands in your sandbox:
sh
pip install -e '.[dev]'
pre-commit install
gitlint install-hook
Have a look at Contributing.md for the full details on the Conventional Commit messages we prefer, our code formatting conventions, and our Git hooks.
Contributors
This project exists thanks to all the people who contribute.
Here is a partial list: @dhdaines. @eddieantonio. @finguist. @joanise. @littell. @roedoejet.
Project web page: ReadAlong Studio: Application for Indigenous audiobooks and videos project
Citation
If you use this software in a project of yours and write about it, please cite us using the following:
Littell, P., Joanis, E., Pine, A., Tessier, M., Huggins-Daines, D., & Torkornoo, D. (2022). ReadAlong Studio: Practical Zero-Shot Text-Speech Alignment for Indigenous Language Audiobooks. Proceedings of SIGUL2022 @LREC2022, 23–32.
@inproceedings{Littell_ReadAlong_Studio_Practical_2022,
author = {Littell, Patrick and Joanis, Eric and Pine, Aidan and Tessier, Marc and Huggins-Daines, David and Torkornoo, Delasie},
booktitle = {Proceedings of SIGUL2022 @LREC2022},
title = {{ReadAlong Studio: Practical Zero-Shot Text-Speech Alignment for Indigenous Language Audiobooks}},
year = {2022},
month = {6},
pages = {23--32},
publisher = {European Language Resources Assiciation (ELRA)},
url = {https://aclanthology.org/2022.sigul-1.4}
}
Aidan Pine, David Huggins-Daines, Eric Joanis, Patrick Littell, Marc Tessier, Delasie Torkornoo, Rebecca Knowles, Roland Kuhn, and Delaney Lothian. 2023. ReadAlong Studio Web Interface for Digital Interactive Storytelling. In Proceedings of the 18th Workshop on Innovative Use of NLP for Building Educational Applications (BEA 2023), pages 163–172, Toronto, Canada. Association for Computational Linguistics.
@inproceedings{pine-etal-2023-readalong,
title = "{R}ead{A}long Studio Web Interface for Digital Interactive Storytelling",
author = "Pine, Aidan and Huggins-Daines, David and Joanis, Eric and Littell, Patrick and Tessier, Marc and Torkornoo, Delasie and Knowles, Rebecca and Kuhn, Roland and Lothian, Delaney",
editor = {Kochmar, Ekaterina and Burstein, Jill and Horbach, Andrea and Laarmann-Quante, Ronja and Madnani, Nitin and Tack, Ana{\"\i}s and Yaneva, Victoria and Yuan, Zheng and Zesch, Torsten},
booktitle = "Proceedings of the 18th Workshop on Innovative Use of NLP for Building Educational Applications (BEA 2023)",
month = jul,
year = "2023",
address = "Toronto, Canada",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.bea-1.14",
doi = "10.18653/v1/2023.bea-1.14",
pages = "163--172",
abstract = "We develop an interactive web-based user interface for performing textspeech alignment and creating digital interactive read-along audio books that highlight words as they are spoken and allow users to replay individual words when clicked. We build on an existing Python library for zero-shot multilingual textspeech alignment (Littell et al., 2022), extend it by exposing its functionality through a RESTful API, and rewrite the underlying speech recognition engine to run in the browser. The ReadAlong Studio Web App is open-source, user-friendly, prioritizes privacy and data sovereignty, allows for a variety of standard export formats, and is designed to work for the majority of the world{'}s languages.",
}
License
MIT © 2019-2025 David Huggins-Daines and National Research Council Canada
Owner
- Name: ReadAlongs
- Login: ReadAlongs
- Kind: organization
- Repositories: 6
- Profile: https://github.com/ReadAlongs
Citation (CITATION.cff)
cff-version: 1.2.0
message: >-
If you use this software in a project of yours and write about it, please
cite our SIGUL 2022 paper using the following citation data.
title: ReadAlongs Studio
url: https://github.com/ReadAlongs/Studio
preferred-citation:
type: conference-paper
title: >-
ReadAlong Studio: Practical Zero-Shot Text-Speech Alignment for Indigenous
Language Audiobooks
authors:
- given-names: Patrick
family-names: Littell
email: Patrick.Littell@nrc-cnrc.gc.ca
affiliation: National Research Council Canada
- given-names: Eric
family-names: Joanis
email: Eric.Joanis@nrc-cnrc.gc.ca
affiliation: National Research Council Canada
- given-names: Aidan
family-names: Pine
email: Aidan.Pine@nrc-cnrc.gc.ca
affiliation: National Research Council Canada
- given-names: Marc
family-names: Tessier
email: Marc.Tessier@nrc-cnrc.gc.ca
affiliation: National Research Council Canada
- given-names: David
family-names: Huggins-Daines
email: dhdaines@gmail.com
affiliation: Independent Researcher
- given-names: Delasie
family-names: Torkornoo
email: delasie.torkornoo@carleton.ca
affiliation: Carleton University
collection-title: Proceedings of SIGUL2022 @LREC2022
start: 23
end: 32
year: 2022
month: 6
publisher:
name: European Language Resources Assiciation (ELRA)
location:
name: Marseille
url: http://www.lrec-conf.org/proceedings/lrec2022/workshops/SIGUL/pdf/2022.sigul-1.4.pdf
GitHub Events
Total
- Create event: 32
- Release event: 2
- Issues event: 16
- Watch event: 6
- Delete event: 31
- Member event: 1
- Issue comment event: 72
- Push event: 121
- Pull request event: 46
- Pull request review event: 31
- Pull request review comment event: 22
- Fork event: 1
Last Year
- Create event: 32
- Release event: 2
- Issues event: 16
- Watch event: 6
- Delete event: 31
- Member event: 1
- Issue comment event: 72
- Push event: 121
- Pull request event: 46
- Pull request review event: 31
- Pull request review comment event: 22
- Fork event: 1
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 890
- Total Committers: 21
- Avg Commits per committer: 42.381
- Development Distribution Score (DDS): 0.576
Top Committers
| Name | Commits | |
|---|---|---|
| Eric Joanis | E****s@c****a | 377 |
| roedoejet | a****e@s****a | 178 |
| David Huggins-Daines | d****s@g****m | 177 |
| Littell | P****l@d****a | 45 |
| Eric Joanis | e****s@n****a | 39 |
| Eric Joanis | E****s@n****a | 16 |
| roedoejet | h****o@a****a | 13 |
| Patrick Littell | p****o@g****m | 9 |
| dependabot[bot] | 4****]@u****m | 5 |
| Davis | F****s@d****a | 4 |
| Davis | f****3@u****a | 4 |
| David Huggins-Daines | d****d@e****a | 3 |
| Eddie Antonio Santos | E****s@n****a | 3 |
| tobyatgithub | t****n@g****m | 3 |
| Eddie Antonio Santos | e****s@u****a | 3 |
| HackMD | n****y@h****o | 3 |
| marctessier | 4****r@u****m | 3 |
| Eddie Antonio Santos | e****o@h****m | 2 |
| finguist | 4****t@u****m | 1 |
| Littell | P****l@r****a | 1 |
| roedoejet | r****t@u****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 61
- Total pull requests: 156
- Average time to close issues: 10 months
- Average time to close pull requests: 5 days
- Total issue authors: 7
- Total pull request authors: 8
- Average comments per issue: 1.41
- Average comments per pull request: 2.26
- Merged pull requests: 143
- Bot issues: 0
- Bot pull requests: 12
Past Year
- Issues: 8
- Pull requests: 47
- Average time to close issues: 2 months
- Average time to close pull requests: 4 days
- Issue authors: 4
- Pull request authors: 4
- Average comments per issue: 0.38
- Average comments per pull request: 2.4
- Merged pull requests: 42
- Bot issues: 0
- Bot pull requests: 6
Top Authors
Issue Authors
- joanise (38)
- roedoejet (14)
- deltork (3)
- dhdaines (2)
- marctessier (2)
- dleach02 (1)
- sergeleger (1)
Pull Request Authors
- joanise (142)
- dhdaines (18)
- deltork (14)
- roedoejet (9)
- dependabot[bot] (9)
- github-actions[bot] (3)
- MENGZHEGENG (2)
- sergeleger (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Sphinx *
- guzzle_sphinx_theme *
- sphinx-click *
- sphinxcontrib-programoutput *
- gunicorn *
- uvicorn *
- codecov *
- coverage *
- pip-licenses *
- black *
- flake8 >=4.0.1
- gitlint-core ==0.17.0
- isort >=5.10.1
- mypy >=0.941
- pre-commit >=2.6.0
- types-python-slugify >=5.0.3
- types-pyyaml >=6.0.5
- types-requests >=2.27.11
- types-setuptools >=57.4.9
- Flask >=2.0.0
- Flask-Session ==0.3.2
- chevron ==0.14.0
- click ==8.0.4
- coloredlogs ==10.0
- fastapi ==0.78.0
- flask-socketio ==4.3.2
- g2p >=0.5.20210825
- lxml ==4.9.1
- networkx ==2.5
- numpy >=1.16.4
- pydub ==0.23.1
- pympi-ling ==1.69
- python-slugify ==5.0.0
- soundswallower *
- webvtt-py ==0.4.2
- werkzeug ==2.0.3
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite
- actions/checkout v3 composite
- actions/create-release v1 composite
- actions/setup-python v4 composite
- mathieudutour/github-tag-action v5.5 composite
- peter-evans/create-pull-request v4 composite
- FedericoCarboni/setup-ffmpeg v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v3 composite
- debian bullseye-slim build
- FedericoCarboni/setup-ffmpeg v2 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite