/RecordWizard

🌻 MediaWiki extension allowing mass recording of clean, well cut, well named pronunciation files.

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

Record Wizard

The RecordWizard is a MediaWiki extension providing a recording studio that allows mass recording of clean, well cut, well named pronunciation files.

It was created to run Lingua Libre and their development is therefore strongly correlated, but the extension was designed to be usable on another MediaWiki instance.

Getting Started

Prerequisites

For the RecordWizard to work, a running installation of MediaWiki 1.35+ is required, with the following extensions installed:

The RecordWizard also requires npm and ffmpeg.

(optional) This extension integrates best with the BlueLL skin.

Installing

  • Download and place the file(s) in a directory called RecordWizard in your extensions/ folder.
  • Install additional libraries by running npm install in the extensions/RecordWizard folder.
  • Add the following code in your LocalSettings.php: wfLoadExtension( 'RecordWizard' );

Configuration

The RecordWizard requires the creation of some properties and items in you local Wikibase repository installation. Once done, add the following code (completed with propery and item ids) in your LocalSettings.php. Property types are indicated in comments.

$wgRecordWizardConfig['properties'] = array(
	'langCode'          => 'P...', //external-id
	'iso3'              => 'P...', //external-id
	'gender'            => 'P...', //wikibase-item
	'spokenLanguages'   => 'P...', //wikibase-item
	'instanceOf'        => 'P...', //wikibase-item
	'linkedUser'        => 'P...', //external-id
	'subclassOf'        => 'P...', //wikibase-item
	'audioRecord'       => 'P...', //commonsMedia
	'speaker'           => 'P...', //wikibase-item
	'date'              => 'P...', //time
	'transcription'     => 'P...', //string
	'wikidataId'        => 'P...', //external-id
	'languageLevel'     => 'P...', //wikibase-item
	'residencePlace'    => 'P...', //external-id
	'learningPlace'     => 'P...', //external-id
	'qualifier'         => 'P...', //string
	'wikipediaTitle'    => 'P...', //external-id
	'wiktionaryEntry'   => 'P...', //external-id
	'mediaType'         => 'P...'  //wikibase-item
);

$wgRecordWizardConfig['items'] = array(
	'genderMale'        => 'Q...',
	'genderFemale'      => 'Q...',
	'genderOther'       => 'Q...',
	'language'          => 'Q...',
	'speaker'           => 'Q...',
	'record'            => 'Q...',
	'word'              => 'Q...',
	'langLevelNative'   => 'Q...',
	'langLevelGood'     => 'Q...',
	'langLevelAverage'  => 'Q...',
	'langLevelBeginner' => 'Q...',
	'mediaTypeAudio'    => 'Q...',
	'mediaTypeVideo'    => 'Q...'
);

You also have to define a namespace that can be used for list-managment (it can be an existing one or a specialy created one).

$wgRecordWizardConfig['listNamespace'] = 142; // replace 142 with the actual id of your list-namespace

Finally, check that $wgFFmpegLocation is properly set.

Translating

Translations are managed on TranslateWiki.

Contribute

Please read MediaWiki's code of conduct.

Report an issue on Wikimedia's Phabricator's Lingualibre dashboard

Structure, components and interaction

Tips & tricks

Add $wgResourceLoaderDebug = true; in your LocalSettings.php to disable various minifying features built into the ResourceLoader, in order to ease your debugging work. Do not add that on a live production server.

Authors

License

This project is licensed under the GPL v2.0 License - see the LICENSE file for details

See also

Acknowledgments

  • Development originally funded by a grant of the Wikimedia Foundation (January -> July 2018)
  • Developement for the video recording track sponsored by Wikimédia France (2019)
  • Development for an UI revamp sponsored by Wikimédia France (Mars -> May 2020)
  • Fix for the video recording track sponsored by University of Toulouse (April 2023)