[Userscript] Memrise Audio Provider

I’ve tested the script again and it seems to be running fine for me. If you have this and other scripts running I would suggest you turn them off one by one to narrow down which one is the culprit.

For example I see you are running the memrise turbo script so it could be that.

Thanks so much for this!! Working for me today on Chrome 70 for Mac with Korean.

1 Like

Do you have some kind of instruction manual to use your script to bulk upload forvo audio into my Hebrew-english course ? Thank you


Hi Renan,

Cooljingle’s script just adds TTS audio for the given language.

It does not bulk upload any audio or search for audio resources for the selected word.

1 Like

Do you know some script that does ? Thanks

Hi @cooljingle

I just found out that the audio provider script V0.1.26 crashes for this course and its level 2 pronunciation either in the preview or learning mode.
Works great for the 1st or 3rd level with a normal Japanese definition.

TypeError: _.find(...) is undefined[Weitere Informationen]  eval line 2 > eval:98:39
	MEMRISE.garden.session.make_box</< moz-extension://0ae47eb2-9a98-49a8-bf05-561a74b06db8/userscript.html:98:39
	MEMRISE.garden.session.make_box</< moz-extension://0ae47eb2-9a98-49a8-bf05-561a74b06db8/userscript.html:143:30
	[22]</l<.activate_box https://static.memrise.com/learning/dist/js/learning-session-31ea512a7413.js:1:57584
	[22]</l<.begin https://static.memrise.com/learning/dist/js/learning-session-31ea512a7413.js:1:57349
	b https://static.memrise.com/learning/dist/js/learning-session-31ea512a7413.js:1:126379
	x/<.success https://static.memrise.com/learning/dist/js/learning-session-31ea512a7413.js:1:126766
	S.Callbacks/c https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:27470
	S.Callbacks/h.fireWith https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:28219
	u https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:77237
	.send/o/< https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:79492
	t https://static.memrise.com/dist/js/libs-a4fd8e8bf113.js:1:436024
	onStopRequest resource://gre/modules/WebRequest.jsm:347:7 

From Audio-Provider user script source, from the nested stack (1st error stacktrace line)

if (wordColumn !== "No audio") {
                        var isInjected = false;
                        if (!(canSpeechSynthesize || canGoogleTts || canVoiceRss)){
                            log("could not find a way to generate audio for language " + language);
                        } else
                            isInjected = overrideAllAudio || (result.presentationData || result.testData).audio.value.normal === "AUDIO_PROVIDER";
                        currentWord = _.find([result.learnable.definition, result.learnable.item], x => x.label === wordColumn).value;

Prevous “Auto learn” caller, the user script from the nested stack (2nd error stacktrace line)

MEMRISE.garden.session.make_box = (function() {
            var cached_function = MEMRISE.garden.session.make_box
            return function() {
                var result = cached_function.apply(this, arguments);

I think the problem is with the missing Japanese definition column on the pronunciation levels.

If this might be the case (you can tell better), why don’t you include an audio provider setting to omit the audio for any “Japanese pronunciation” column definition as given?

It should be somehow possible to plant all the pronunciation levels on the web portal and have your user script activated for the rest of the normal levels.

Is there any workaround way to modify the match header to exclude “wildcard (pronunciation) wildcard” level URLs?

I have suggested your user script here: [Feedback] Advanced Japanese Vocabulary course no longer displays phonetic kana readings in reviews

Hello, I’ve been using this script for several years and I wanted to know if you could adapt it (if possible) to the Memrise application. As a computer novice, I have no idea how to do it or if it already works!


Have you tried it with the Tampermonkey / Violentmonkey addons on the mobile web browser apps of Firefox or Chrome on your mobile device (smartphone or tablet)?

Camilo provided a list of compatible browser addons (I have never tested them on an Android emulator): https://github.com/camiloaa/duolingotreeenhancer

I installed the Tampermonkey application on my phone and the script is present. However, when I use the search bar integrated into the application and go to the memrise site, it’s impossible to access the learning or revision, in other words the addresses for which the script is supposed to work. Indeed, even if the tampermonkey logo warns me that the script is being used, the page can’t load despite a 15-minute wait… and if I use google or the application memrise, the script doesn’t work! Will this come from my phone?

Unfortunately there’s no way to make the script work with the memrise app. I haven’t tested using the script in a mobile browser but in theory it should work, although it may require you to set the browser to request the desktop version of the website.

Hi Thomas, I tried previewing level 2 of the course and the audio was working fine, let me know if there’s something else I need to do to reproduce the issue.

Hi @cooljingle, I’m very glad to have found your script collection. Amazing contribution, you should be hired by Memrise :+1:

In the “Decks” feedback forum I have suggested @MemriseSupport to add audio automatically to the entries of the course. For me, it is painful to download all audios and upload to Memrise platform.

When you are learning a language, I think it is important to select carefully which dialect/variety you want to hear repeatedly in order to memorize and integrate into your knowledge. I couldn’t resist asking in the mentioned thread, but now I’m arising this question in your thread.

Is possible with your script to select which variety of English you want to hear? British RP, British Cockney, American, Scottish, South-African, etc.

Thank you very much for your time! :pray:

Hey, unfortunately it doesn’t seem to work with memrise decks :frowning: (with Chrome). Does anyone one what’s wrong?