tts-mos-test-mturk
Command-line interface (CLI) and Python library to evaluate text-to-speech (TTS) mean opinion score (MOS) studies done on Amazon Mechanical Turk (MTurk). The calculation of the confidence intervals is done in the same manner as described in (Ribeiro et al., 2011).
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 9 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.5%) to scientific vocabulary
Keywords
Repository
Command-line interface (CLI) and Python library to evaluate text-to-speech (TTS) mean opinion score (MOS) studies done on Amazon Mechanical Turk (MTurk). The calculation of the confidence intervals is done in the same manner as described in (Ribeiro et al., 2011).
Basic Info
Statistics
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 2
Topics
Metadata Files
README.md
tts-mos-test-mturk
Command-line interface (CLI) to evaluate text-to-speech (TTS) mean opinion score (MOS) studies done on Amazon Mechanical Turk (MTurk).
Features
init: initialize project from .json-filemaskscreate: create empty maskmask-workers-by-id: mask workers by their WorkerIdmask-workers-by-age-group: mask workers by their age groupmask-workers-by-gender: mask workers by their gendermask-workers-by-assignments-count: mask workers by their count of assignmentsmask-workers-by-masked-ratings-count: mask workers by their count of masked ratingsmask-workers-by-correlation: mask workers by their algorithm/sentence correlationmask-workers-by-correlation-percent: mask workers by their algorithm/sentence correlation (percentage-wise)mask-assignments-by-id: mask assignments by their AssignmentIdmask-assignments-by-device: mask assignments by their listening devicemask-assignments-by-status: mask assignments by their statusmask-assignments-by-time: mask assignments by their submit timemask-rating-outliers: mask outlying ratingsmerge-masks: merge masks togetherreverse-mask: reverse mask
statsprint-mos: print MOS and CI95print-masking-stats: print masking statisticsprint-worker-stats: print worker statistics for each algorithmprint-assignment-stats: print assignment statistics for each workerprint-sentence-stats: print sentence statistics for each algorithmprint-data: print all data points
mturkprepare-approval: generate approval fileprepare-rejection: generate rejection fileprepare-bonus-payment: generate bonus payment file
Installation
sh
pip install tts-mos-test-mturk --user
Usage
```txt usage: mos-cli [-h] [-v] {init,masks,stats,mturk} ...
CLI to evaluate text-to-speech MOS studies done on MTurk.
positional arguments: {init,masks,stats,mturk} description init initialize project from .json-file masks masks commands stats stats commands mturk mturk commands
options: -h, --help show this help message and exit -v, --version show program's version number and exit ```
Project JSON example
json
{
"algorithms": [
"alg1",
"alg2",
"alg3",
"alg4"
],
"files": [
"file1",
"file2",
"file3"
],
"workers": {
"worker1": {
"gender": "male",
"age_group": "18-29",
"assignments": {
"assignment1": {
"device": "headphone",
"state": "Approved",
"hit": "hit1",
"time": "13.07.23 05:08:04",
"ratings": [
{
"algorithm": "alg1",
"file": "file1",
"votes": {
"naturalness": 3,
"intelligibility": 5
}
},
{
"algorithm": "alg2",
"file": "file3",
"votes": {
"naturalness": 2,
"intelligibility": 4
}
}
]
}
}
}
}
}
For a longer example see etc/example.json. It contains 4 algorithms and 120 files which were rated by 36 dummy workers in batches of 10 files per assignment. An example parsing of that file is under etc/example.sh.
Roadmap
- add
masks mask-assignments-not-of-last-month/week/day - make device, state, hit and time optional
- make tax value optional
Dependencies
numpypandastqdmordered-set>=4.1.0mean-opinion-score==0.0.2
Contributing
If you notice an error, please don't hesitate to open an issue.
Development setup
```sh
update
sudo apt update
install Python 3.8, 3.9, 3.10 & 3.11 for ensuring that tests can be run
sudo apt install python3-pip \ python3.8 python3.8-dev python3.8-distutils python3.8-venv \ python3.9 python3.9-dev python3.9-distutils python3.9-venv \ python3.10 python3.10-dev python3.10-distutils python3.10-venv \ python3.11 python3.11-dev python3.11-distutils python3.11-venv
install pipenv for creation of virtual environments
python3.8 -m pip install pipenv --user
check out repo
git clone https://github.com/stefantaubert/tts-mos-test-mturk.git cd tts-mos-test-mturk
create virtual environment
python3.8 -m pipenv install --dev ```
Running the tests
```sh
first install the tool like in "Development setup"
then, navigate into the directory of the repo (if not already done)
cd tts-mos-test-mturk
activate environment
python3.8 -m pipenv shell
run tests
tox ```
Final lines of test result output:
log
py38: commands succeeded
py39: commands succeeded
py310: commands succeeded
py311: commands succeeded
congratulations :)
License
MIT License
Acknowledgments
- Ribeiro, F., Florêncio, D., Zhang, C., & Seltzer, M. (2011). CrowdMOS: An approach for crowdsourcing mean opinion score studies. 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2416–2419. https://doi.org/10.1109/ICASSP.2011.5946971
Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – Project-ID 416228727 – CRC 1410
Citation
If you want to cite this repo, you can use this BibTeX-entry generated by GitHub (see About => Cite this repository).
txt
Taubert, S. (2024). tts-mos-test-mturk (Version 0.0.2) [Computer software]. https://doi.org/10.5281/zenodo.10461539
Changelog
- v0.0.2 (2024-01-05)
- Bugfix:
mask mask-workers-by-correlation-percent: sorting was not always correct- Added:
mask mask-workers-by-correlation-percent: added option to include masked workers in percentage calculationmturk prepare-bonus-payment: added logging of fees for Mechanical Turkmturk prepare-approval: added logging of fees for Mechanical Turk- added
mask mask-assignments-by-status - added
mask mask-assignments-by-time - added parsing of
HITId - added option to mask assignments before preparing rejection CSV
- added
!before mask name reverses mask on input - added
masks mask-assignments-by-id - added
masks mask-workers-by-id - Changed:
- moved template creation and preparation to another repository
- removed worktime parsing
- v0.0.1 (2023-02-23)
- Initial release
Owner
- Name: Stefan Taubert
- Login: stefantaubert
- Kind: user
- Location: Chemnitz, Germany
- Company: Chemnitz University of Technology
- Website: https://stefantaubert.com
- Twitter: Stefan_Taubert
- Repositories: 75
- Profile: https://github.com/stefantaubert
Currently I am working on my PhD about the topic of speech synthesis at Chemnitz University of Technology.
Citation (CITATION.cff)
cff-version: 1.2.0
title: tts-mos-test-mturk
abstract: Command-line interface to evaluate text-to-speech mean opinion score studies done on Amazon Mechanical Turk.
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- email: github@stefantaubert.com
given-names: Stefan
family-names: Taubert
affiliation: Chemnitz University of Technology
orcid: 'https://orcid.org/0000-0002-4932-2874'
website: 'https://stefantaubert.com/'
version: 0.0.2
date-released: 2024-01-05
license: MIT
url: https://github.com/stefantaubert/tts-mos-test-mturk
doi: 10.5281/zenodo.10461539
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 9 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
- Total maintainers: 1
pypi.org: tts-mos-test-mturk
Command-line interface to evaluate text-to-speech mean opinion score studies done on Amazon Mechanical Turk.
- Homepage: https://github.com/stefantaubert/tts-mos-test-mturk
- Documentation: https://tts-mos-test-mturk.readthedocs.io/
- License: MIT
-
Latest release: 0.0.2
published about 2 years ago