Seeking Help with Speech-to-Text Implementation in Kepler WebView

We are currently working on implementing the speech-to-text functionality( Web Speech API - Web APIs | MDN ) in Kepler WebView, but we’ve encountered some challenges. Despite following the documentation, we keep running into an issue where the onerror event triggers with the message ‘audio-capture’.
Has anyone experienced this issue before or have any insights on how to resolve it? Any guidance or suggestions would be greatly appreciated.
Thank you in advance for your help!

Hi @Sergio_Gomez,

Thanks for reaching out! Based on a lookup of this error, it’s usually correlated to the common causes below. Did the team already investigate the causes below and were able to rule them out?

  • User denies permission: This is the most frequent reason. When a website requests microphone access, browsers display a prompt. If the user clicks “Block” or ignores the prompt, the promise returned by getUserMedia() is rejected, triggering the error.
  • No microphone available: The user’s device may not have a microphone or the hardware is disconnected, broken, or disabled in the operating system’s settings. The getUserMedia() API will reject the request with a NotFoundError in this case.
  • Insecure context (not HTTPS): Modern browsers require secure contexts (HTTPS) to access powerful web APIs like getUserMedia() for security and privacy. If the website is served over an insecure HTTP connection, the browser will block the request and reject the promise.
  • Device is already in use: The microphone may be in use by another application or tab, preventing the new request from succeeding.
  • Blocked by permissions policy: On some browsers, if the website’s permissions policy does not explicitly allow access to user media devices, the request will be denied.
  • Browser-specific issues: Less commonly, certain browser versions or operating system configurations can lead to the error. For example, older versions of Firefox once returned a NotSupportedError for empty constraint lists, which has since been corrected.

Hi Justin,
Thanks for your previous reply. We’ve performed some additional tests and wanted to share the results for clarification:

  • When we call navigator.mediaDevices.getUserMedia({ audio: true }), we consistently get the error: NotSupportedError: NotSupported.

  • The app is running in a secure context (HTTPS).

  • A physical microphone is available on the device and not in use by any other application at the time of testing.

  • We never see a permission prompt for microphone access, so we’re not sure if permissions are being automatically denied in the Kepler WebView.

  • We also don’t know whether a permissions policy or a browser-specific limitation could be blocking access, and we don’t have a way to confirm this from our side.

Given these points, we’re unsure how to properly access the microphone within Kepler. Could you confirm whether getUserMedia (and therefore audio capture) is supported in the Kepler environment, and if there are any additional steps required on our side to enable it?

Hi @Sergio_Gomez

Can you use below alternatives?
Either leverage chromium default Ax mechanism or use KeplerScript speech APIs.
Do these options work for your usecase?

Warm regards,
Ivy

Hi @Sergio_Gomez

Closing this ticket since there’s no reply from you.
If you are still facing this issue, please feel free to create a new topic and we’ll be happy to help.

Warm regards,
Ivy