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

https://github.com/stefantaubert/tts-mos-test-mturk

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

amazon-mechanical-turk mean-opinion-score mos mturk text-to-speech
Last synced: 6 months ago · JSON representation ·

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
  • Host: GitHub
  • Owner: stefantaubert
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 720 KB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Topics
amazon-mechanical-turk mean-opinion-score mos mturk text-to-speech
Created about 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

tts-mos-test-mturk

PyPI PyPI MIT PyPI PyPI PyPI DOI

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-file
  • masks
    • create: create empty mask
    • mask-workers-by-id: mask workers by their WorkerId
    • mask-workers-by-age-group: mask workers by their age group
    • mask-workers-by-gender: mask workers by their gender
    • mask-workers-by-assignments-count: mask workers by their count of assignments
    • mask-workers-by-masked-ratings-count: mask workers by their count of masked ratings
    • mask-workers-by-correlation: mask workers by their algorithm/sentence correlation
    • mask-workers-by-correlation-percent: mask workers by their algorithm/sentence correlation (percentage-wise)
    • mask-assignments-by-id: mask assignments by their AssignmentId
    • mask-assignments-by-device: mask assignments by their listening device
    • mask-assignments-by-status: mask assignments by their status
    • mask-assignments-by-time: mask assignments by their submit time
    • mask-rating-outliers: mask outlying ratings
    • merge-masks: merge masks together
    • reverse-mask: reverse mask
  • stats
    • print-mos: print MOS and CI95
    • print-masking-stats: print masking statistics
    • print-worker-stats: print worker statistics for each algorithm
    • print-assignment-stats: print assignment statistics for each worker
    • print-sentence-stats: print sentence statistics for each algorithm
    • print-data: print all data points
  • mturk
    • prepare-approval: generate approval file
    • prepare-rejection: generate rejection file
    • prepare-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

  • numpy
  • pandas
  • tqdm
  • ordered-set>=4.1.0
  • mean-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 calculation
    • mturk prepare-bonus-payment: added logging of fees for Mechanical Turk
    • mturk 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

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

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 149
  • Total Committers: 1
  • Avg Commits per committer: 149.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 1
  • Committers: 1
  • Avg Commits per committer: 1.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Stefan Taubert 2****t 149

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.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 9 Last month
Rankings
Dependent packages count: 6.6%
Average: 18.6%
Dependent repos count: 30.6%
Maintainers (1)
Last synced: 6 months ago