Moodle plugins directory: Record audio/video question type | Moodle.org
Record audio/video question type
Question types ::: qtype_recordrtc
Maintained by Tim Hunt, Chris Nelson, Mahmoud Kassaei
A manually graded Moodle question type, where the student records a short audio response to answer the question asked.
Latest release:
1091 sites
410 downloads
52 fans
Current versions available: 4
This question type is like the standard essay question type, but instead of writing some text, students have a recording widget where they can record some audio (in future, we plan to also add video recording). We've basically taken RecordRTC (https://docs.moodle.org/38/en/RecordRTC) and implemented it as a question type.
We consider this an evolution of an Essay question with RecordRTC buttons available to students. We have essentially taken the existing parts and distilled them into a specific question type for the ease and convenience of teachers designing quiz questions and for the students taking them.
Like the standard essay question type, it still requires human grading.
While this question type has obvious uses in Moodle Quiz, it has been primarily designed to be used in an embedded question context (see https://moodle.org/plugins/filter_embedquestion).
This question type has two behaviours: deferred feedback, for use in formal Moodle Quiz tests where a tutor would mark the students' recordings; and a new self-rating behaviour, where students mark themselves.
The self-rating behaviour is used essentially whenever the behaviour is interactive or immediate. We have assumed two use-cases: 1) the student listens to a 'model' audio clip and then records their attempt to follow it. They compare the two clips, and then rate their mimicry. Or 2) the student attempts to pronounce a written sentence verbally, and the feedback contains a model pronunciation clip, allowing the student to then compare the clips and self-rate their accuracy.
This plugin was created by The Open University UK, specifically for its School of Languages and Applied Linguistics.
We consider this an evolution of an Essay question with RecordRTC buttons available to students. We have essentially taken the existing parts and distilled them into a specific question type for the ease and convenience of teachers designing quiz questions and for the students taking them.
Like the standard essay question type, it still requires human grading.
While this question type has obvious uses in Moodle Quiz, it has been primarily designed to be used in an embedded question context (see https://moodle.org/plugins/filter_embedquestion).
This question type has two behaviours: deferred feedback, for use in formal Moodle Quiz tests where a tutor would mark the students' recordings; and a new self-rating behaviour, where students mark themselves.
The self-rating behaviour is used essentially whenever the behaviour is interactive or immediate. We have assumed two use-cases: 1) the student listens to a 'model' audio clip and then records their attempt to follow it. They compare the two clips, and then rate their mimicry. Or 2) the student attempts to pronounce a written sentence verbally, and the feedback contains a model pronunciation clip, allowing the student to then compare the clips and self-rate their accuracy.
This plugin was created by The Open University UK, specifically for its School of Languages and Applied Linguistics.
(We hope that we could look at giving Essay a self-rating behaviour next, which could be used in a similar embedded fashion as an alternative to Pattern Matching sentences. Although if you're thinking about that area already, you might find Gordon Bateson's essay auto-grade plugin of interest.)
Useful links
Contributors
Tim Hunt (Lead maintainer)
Chris Nelson: Product owner
Mahmoud Kassaei: Developer
Please login to view contributors details and/or to contact them
The new version of qbehaviour_selfassess now installs OK, but now I get:
Upgrading to new version
qtype_recordrtc
Setting default values of 'canselfrate' and 'canselfcomment' - 0/29 (id = ).
Coding error detected, it must be fixed by a programmer: moodle_database::update_record_raw() id field must be specified.
More information about this error
Debug info:
Error code: codingerror×Dismiss this notification
Stack trace:
line 1575 of /lib/dml/mysqli_native_moodle_database.php: coding_exception thrown
line 1632 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->update_record_raw()
line 251 of /question/type/recordrtc/db/upgrade.php: call to mysqli_native_moodle_database->update_record()
line 784 of /lib/upgradelib.php: call to xmldb_qtype_recordrtc_upgrade()
line 1953 of /lib/upgradelib.php: call to upgrade_plugins()
line 721 of /admin/index.php: call to upgrade_noncore()
The problem can only happen if you have recordrtc questions in your database which missing the corresponding row in qtype_recordrtc_options - which should be impossible.
If you can directly access your database, a query like
SELECT * FROM mdl_question q
WHERE qtype='recordrtc'
AND NOT EXISTS (SELECT 1 FROM mdl_qtype_recordrtc_options o WHERE o.questionid = q.id)
will find which questions are affected.
Then there is the issue of what do do about it. If the rows in mdl_question look like junk, you could consider deleting them. If you can get to the edit form for these particular questions, you might be able to save the question again, which might fix things, or you could manually try to insert the missing data in mdl_qtype_recordrtc_options .
Sorry for the hassle.
In this chunk of upgrade code, the 'LEFT JOIN' appears twice on lines 229 and 235. If you changed that to JOIN, then the upgrade would run without the missing data causing issues. Then you cound investigate the broken questions later.
On my production site, routine installation from the /admin/notifications page worked without problems.
Thanks a lot for your help!
Regarding grader information, like Essay. Yes, adding that would be very possible. It just needs someone with time to do the work.
If someone could find the time to add grader information to the recordrtc questiontype, that would allow a better use of this work around script I found thanks to Chatgpt.
It looks for the id of the student in the source and concatenate it with the url of the rubric in an assignement of the same page, to directly go to the evaluation grid of the candidate.
As our grader do not see the identity of the students (I gave them a profile without right to see fullnames) , such a link might at least reduce human errors (aka grading the wrong person).
At the moment I can only put it in the feedback textfield of the question where it works well, but it's not the best solution as students might see this button there.
I hope this work around helps somebody
script> function generateMoodleLink() {
var pageSource = document.documentElement.innerHTML;
var userIdStartIndex = pageSource.indexOf('user/view.php?id=') + 17; // Adding 17 to skip the length of 'user/view.php?id='
var userIdEndIndex = pageSource.indexOf('&', userIdStartIndex); // Find the index of the next '&' character after the user ID
var userId = pageSource.substring(userIdStartIndex, userIdEndIndex);
// Generating the Moodle link
var moodleLink = 'https://moodle.*INSERTNAME OF SERVER HERE*/mod/assign/view.php?id=*INSERT ID OF THE ASSIGNEMENT HERE*&action=grader&userid=' + userId;
// Displaying the link
document.getElementById('moodleLink').textContent = moodleLink;
document.getElementById('moodleLink').setAttribute('href', moodleLink);
}
/script>
button onclick="generateMoodleLink()">Evaluation
a id="moodleLink" href="#" target="_blank">
how to fix "Exception - qtype_recordrtc\widget_info::__construct(): Argument #2 ($type) must be of type string, null given, called in [dirroot]\question\type\recordrtc\questiontype.php on line 156" when i restore question recordrtc from moodle 3.9 to 4.2.
First - thanks for the great work on the plugin. Everything works great on our end. Well done!
May I humbly submit the following request for development, potentially making the plugin EVEN MORE useful - especially against cheating:
An option is added to the question type, allowing for the following
-The question (or part of) is revealed only once the record button is pressed (and recording device activated).
-A timer would then count down 'reflection time' (say 10 seconds) after which the recording starts, and students give their response.
Hope this makes sense, and meets with your approval!
Thanks again for the great work!