Adding native audio recording for `audio` type questions

This is a continuation of the recent discussion here. It's also very related to creating background recordings since both require native recording capabilities.

1. What is the general goal of the feature?

  • Collect users should be able to record audio responses to interview questions without the need for external apps
  • Other applications often are not free, have many confusing settings, and generally add to the training requirements for enumerators

2. What are some example use cases for this feature?

  • Recording interview responses
  • Recording focus group discussions
  • Recording environmental samples (e.g. birds, traffic, etc.)

3. What can you contribute to making this feature a reality?

  • UX/UI design, funding

6 posts were split to a new topic: Developing new open source external audio app

The value of this in contexts where data security is an issue cannot be understated

Big problems we see are that

  1. The audio recorder saves a copy of the recording to disk, which has to be manually removed. At present our teams collect a lot of sensitive health data interviews and use RecForge Pro II. It is a very messy process to clean up the files after saving.

  2. Audio files get big very quickly, putting strain on ability to upload media files with limited bandwidth. The Opus format sounds promising if 1 hour of interview comes in at less than 5 MB, but I haven't worked with Opus before and I would love to test an APK to see how this works in the field.

It would be good if the native audio system could be flexible in how it handles files

  1. Audio file encryption using ODK form level encryption. Should work out of the box I guess.
  2. Option to save copy of file to Android storage (in encrypted format)
  3. Option not to send media file with data submission. i.e. leave data file on device but send data without attachments
  4. Options for format, quality etc would be coded from within XLSForm specification.
1 Like

This should be taken care of by Remove previously taken images from gallery which should be implemented soon. (It will be not just images but all attachments.)

RecForge II allows recording in opus, but strangely only in 48kHz. I've had very good results recording voice with AMR/3gp, though Opus claims to be even smaller. In my work AMR required 0.1 MB per minute at phone quality, which would be small enough for field contexts. Higher quality would be good for multi speaker or bad recording environments, though. This is why allowing users to specify the recording quality is quite important.

1 Like

Built-in audio recording is now available to try out in the Collect v1.29 beta. The latest beta released today adds pause/resume (available on Android 7+) and visual feedback while recording.

Audio quality can be configured from form definitions (XLSForm support pending a pyxform update planned for 12/8). Available options are currently normal, voice-only and low. Learn more in the spec discussion.

For v1.29, external recording will continue to be the default. This will make sure there is no disruption to ongoing projects and will give us a chance to make updates based on user feedback. We plan to change the default for new installs to built-in recording in v1.30. To turn on built-in recording, go to General Settings > Form management and uncheck "Use external app for audio recording". Alternately, use a form which specifies a recording quality (form settings always override Collect settings). There is a form on the default server named Internal audio recording with other questions which showcases this new functionality.

2 Likes

Thanks again to all who participated in this effort! Collect v1.29 is now published with built-in audio recording. The documentation is available at https://docs.getodk.org/form-question-types/#audio-widget.

We have some updates planned for v1.30 based on feedback from @Tino_Kreutzer and others. If you see any issues with this feature or would like to suggest additions, please start a new thread. If the audio qualities provided are not sufficient for you, please join the discussion on a possible high quality option.

3 Likes