Dear Dae and the Anki team,
Is your feature request related to a problem? Please describe
TLDR: I can’t access the microphone on cards using JavaScript.
Yes. I’m interested in using Anki, ideally on both desktop (without add-ons) and mobile, for language learning tasks that involve speaking. This includes activities like shadowing, pronunciation practice, and pitch or timing analysis. The idea is to avoid traditional shadowing, where you repeat after a recording and hope you’re close.
With microphone access, I could give myself immediate visual or quantitative feedback, making practice more focused, measurable, and engaging. Currently, I’m unable to access the microphone from JavaScript within a card, which prevents me from building these kinds of features myself.
Somewhat related, I recently used Anki to improve my perception of Japanese pitch accent, and found that showing spectrograms on the back of the card helped me tune in to intonation differences much more effectively. In general, I’ve found that having a simple task on the front of the card, and lots of information to assist learning on the back of cards, is the most effective way to learn for me. That is to say, having more features might not just be a “nice-to-have”, but possibly changes the difficulty of learning something from prohibitive to possible, or from not sufficiently time efficient to time efficient.
I also have some ideas outside of language learning (e.g. singing), but I think shadowing seems like a straightforward use-case.
Describe the solution you’d like
TLDR: Allow JavaScript on cards to access the microphone.
I’d like to be able to access the microphone using JavaScript on a card, so I can capture and process the audio myself. This would allow me to create interactive cards that include real-time or post-recording analysis, such as comparing my speech to a model, showing spectrograms, or analysing pitch. I’m not asking for Anki to include these features - just for JavaScript-based access to be possible.
To understand what’s feasible, I’d like to ask:
- Is microphone access via JavaScript (e.g., using
getUserMedia
or otherwise) currently possible in AnkiDesktop or AnkiMobile? - If not, would it be technically possible with changes to Anki?
- If it is technically possible but not yet supported:
3.1 What technical hurdles exist that may prevent this?
3.2 What non-technical hurdles exist that may prevent this?
Describe alternatives you’ve considered
TLDR: The alternatives are just workarounds.
- Using Anki for scheduling and another application that allows mic access for everything else. This could work, but requires switching away from Anki and disrupts the experience.
- Using add-ons or local tools on desktop, though these don’t work cross-platform and aren’t portable.
- Anki’s built-in recording tools, which don’t integrate with JS or allow real-time access.
These options are workarounds rather than true solutions for interactive cards.
Thank you for your time and for making Anki. It has had an outsize impact on my life and I’m very grateful for your work.