Skip to main content

Philips hardware integration guide for web-based apps

Google Dictation support SDK

In 2022, Google started a partnership with Philips dictation to create a light-weight dictation support SDK. This SDK is hosted on Github as an open-source project and is released as Javascript library. It is based on the WebHID API. You'll find information about usage and developer instructions in the readme section of the github page.

Features

  • Button/pedal events

  • LED control

  • Device connection events

  • Device info

Supported devices

  • SpeechMike Premium range

  • SpeechMike Premium Touch range

  • SpeechMike Premium Air range

  • SpeechOne range

  • All Philips Foot controls

  • PowerMic III

  • PowerMic 4

Supported platforms

  • Google Chrome on Windows, Mac, Linux and ChromeOS

  • Microsoft Edge

These browsers are also supported when running in remote environments, provided that the dictation devices connected to the client are natively redirected on USB level by the virtualization platform (e.g. Citrix, VMware etc.).

Pros and Cons

Pro

Con

  • Supports a wide range of dictation devices

  • Supports Chrome on many platforms

  • No installation of any native component or browser extension required for the end user

  • For security reasons, this SDK requires permission to interact with a connected dictation device. Permission can be granted in two different ways, either by the admin or by the user

  • Some Thinclient platforms don't yet support native USB redirection properly. This SDK cannot be used in a remote session from such a client.

Admin grants permission

The admin can grant permissions upfront by allowlisting all devices for certain URLs the SDK is used on, or allowlisting certain devices (based on USB product ID and USB vendor ID) for certain URLs the SDK is used on. See WebHidAllowAllDevicesForUrls and WebHidAllowDevicesForUrls respectively on how to set these policies on different platforms like Windows, macOS and ChromeOS.

We strongly recommend this option, since it does not require any additional development effort for independent software vendors, and it does not require repeated user interaction.

User grants permission

Pages integrating this SDK would need to call deviceManager.requestDevice(), which will prompt the user to select one of the supported devices from a pop-up. Note that the user has to interact with the page or an UI element in order for the call to deviceManager.requestDevice() to work.

google-sdk_connect-to-footcontrol.gif

Once the user has granted permission, the device will be available. That device will also be available when the page reloads. Disconnecting and reconnecting the device as well as restarting Chrome will require the user to grant permission again.

Unfortunately, admins cannot be forced to roll out policies, which is why we advise to always provide an UI element for triggering the “User grants permission” option as a backup.