Page MenuHomePhabricator

Add recording functionality to the frontend
Closed, ResolvedPublic

Description

Allow the user to record themselves on Special:Record. Saving should send data to storage. (broken out in T272960)

LinguaRecorder has a lot of nice features that we should use if possible.

Event Timeline

Sebastian_Berlin-WMSE changed the point value for this task from 8 to 16.Nov 20 2020, 11:45 AM

For some reason, infusing the record button causes it to lose it's label.

Sebastian_Berlin-WMSE changed the point value for this task from 16 to 12.Dec 10 2020, 10:12 AM

May end up using audio controls rather than a play-button for previewing recordings.

For some reason, infusing the record button causes it to lose it's label.

Apparently this is caused by how the label is set when creating a widget.

'label' => $this->msg( 'wikispeech-sdc-record' )->text()

works, but

'label' => $this->msg( 'wikispeech-sdc-record' )

don't.

Lokal_Profil renamed this task from Add recording to the frontend to Add recording functionality to the frontend.Jan 26 2021, 9:23 AM
Lokal_Profil changed the point value for this task from 12 to 8.Jan 27 2021, 10:08 AM

Change 659764 had a related patch set uploaded (by Sebastian Berlin (WMSE); owner: Sebastian Berlin (WMSE)):
[mediawiki/extensions/WikispeechSpeechDataCollector@master] Add recording functionality to SpecialRecordSpeech

https://gerrit.wikimedia.org/r/659764

There are more parameters for LinguarRecorder that could be useful, see readme for full list.

Auto start and auto stop seemed like a good thing to have. They should ensure that there is no extra silence. Something to keep an eye out for is if the threshold parameters need tweaking, once it is widely used (i.e. if people are unhappy with the behaviour).

Min length, max length and saturation could be useful to filter out some garbage data.

There is an issue when running Qunit tests when Jenkins runs them and/or when all tests are run (not just the extensions). It appears that the stubbing of SpecialRecordSpeech.init() does not work as I thought it would. Maybe a race condition?

I did a bit of restructuring, which seems to have fixed the issue. What I did was to separate the the module into two, one for the logic of the recorder and one for initializing the special page. The latter does the infusing, creates a LinguaRecorder and creates the former. This means the code is divided into the recorder logic that we want to test and the UI calls, which we assume should work.

Sebastian_Berlin-WMSE changed the point value for this task from 8 to 4.Feb 11 2021, 9:43 AM
Lokal_Profil changed the point value for this task from 4 to 1.Apr 8 2021, 8:25 AM

Change 659764 merged by jenkins-bot:

[mediawiki/extensions/WikispeechSpeechDataCollector@master] Add recording functionality to SpecialRecordSpeech

https://gerrit.wikimedia.org/r/659764