This is a tool for automating the process of creating online listening tests in Qualtrics. If you have any issues using it please submit here https://github.com/CSTR-Edinburgh/qualtreats/issues
This tool reduces number of manual steps required to create a functioning test. It works by generating a JSON file which Qualtrics will interpret to produce a survey. It was originally created for use in evaluating text-to-speech systems, but has wider applications in speech technology and other audio-related fields.
This is not supported in any way by Qualtrics and is 100% unofficial.
It currently supports:
- A/B preference questions (‘Which speech sample sounds more natural?’)
- A/B/C preference questions (as above but with 3 choices)
- Multiple choice questions (‘Does this speech sample contain any errors?’)
- Transcription questions (‘Listen to this audio clip and type what you hear.’)
- MUSHRA style questions (MUltiple Stimuli with Hidden Reference and Anchor)
- MOS test questions (Mean Opinion Score, with 1:5 slider scale)
See a demo test showcasing each question type here.
A MUSHRA test question created using the testmaker script.
The file help.md
contains solutions to some issues we encountered while generating surveys.
A Wiki with more comprehensive instructions for setting up listening tests in Qualtrics is here
This tool only uses packages from the Python standard library.
Clone the GitHub repository with the command:
git clone https://github.com/CSTR-Edinburgh/qualtreats.git
The script expects the folder /resources
to contain .txt
files with lists of your audio URLs. Some test files are included by default. The necessary file format varies between question types. Requirements for each type are detailed in config.py
.
Before running the script, the file config.py
should be updated to contain the correct paths for your URLs, and the correct text for your questions.
(This only applies to the question types included in your test, which you will specify using command line flags. The others won't be executed, so can remain as the default.)
This file contains the basic building blocks for every available question type. You don't need to modify this file to run the script.
If you want to extend the script's functionality to include more question types, you should generate a new JSON template file. You can do this by manually creating a survey in Qualtrics which meets your requirements, and exporting the survey file (Tools --> Export).
The number of questions in the survey is taken automatically from the number of filenames in your lists.
Default question settings are determined by the template file combined-template.JSON
. These settings include:
- Answer choices are presented in random order (except for multiple choice questions).
- Force response, so all questions must be answered before proceeding.
- Audio playback is disabled for transcription tests (so each audio clip can be played only once).
- The default HTML5 audio player is replaced by a simple play/pause button, as the hidden reference could be identified by its duration.
- At least one sample must be rated == 100 (in line with the guidelines set out in ITU-R BS.1534-1).
Changing these settings requires either editing the template file (combined-template.JSON
) or creating a new template by creating a question in Qualtrics with the correct specifications and exporting the survey file.
The script is run from the command line, using flags to specify the desired question types.
Flags:
-ab
= A/B preference-abc
= A/B/C preference-mc
= multiple choice-trs
= audio transcription-trs_video
= video transcription-mushra
= MUSHRA-mos
= MOS
Questions will be added to the output test for each flag supplied, following the order shown above.
E.g. to create a test with MUSHRA then audio transcription questions, use the command:
python testmaker.py -mushra -trs
To create questions starting from a number different than 1:
python testmaker.py -trs_video -qinitial 61
To group questions into blocks (to allow block randomisation):
python testmaker.py -trs_video -nblocks 3
This will divide the total number of questions (i.e. the number of lines in the resource url file) into nblocks
Running the script will create a .qsf (Qualtrics Survey Format) file called output-survey.qsf
.
This file can be imported to Qualtrics (following the steps here) and will be converted to a working listening test.
While this script generates test questions, other elements of the test still have to be configured manually in Qualtrics. These include consent forms and instructions, as well as specific flow settings, like randomly assigning participants to groups.