Share via


Respond to microphone buttons (.NET)

Dragon Medical SpeechKit supports button events from microphones and control devices. Make sure that microphone button support is properly set up in your app.

Use the ISession.ControlDeviceEventReceived event to assign functionality to microphone buttons. This event fires each time a supported button is pressed on a supported microphone.

Enabling microphone button support

To support Nuance PowerMic and Philips SpeechMike buttons, add the following dependencies to your app's manifest file:

  • For x86 apps:

    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Nuance.PowerMic"
                version="<Nuance.PowerMic assembly version>"
                processorArchitecture="x86"/>
        </dependentAssembly>
    </dependency>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Philips.SpeechMike"
                version="<Philips.SpeechMike assembly version>"
                processorArchitecture="x86"/>
        </dependentAssembly>
    </dependency>
    
  • For x64 apps:

    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Nuance.PowerMic"
                version="<Nuance.PowerMic assembly version>"
                processorArchitecture="amd64"/>
        </dependentAssembly>
    </dependency>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Philips.SpeechMike"
                version="<Philips.SpeechMike assembly version>"
                processorArchitecture="amd64"/>
        </dependentAssembly>
    </dependency>
    
    

Remarks

  • If you're using Philips SpeechMike, we recommend always installing the latest SpeechMike firmware.
  • Nuance supports the use of Dragon Medical SpeechKit in combination with the Nuance.PowerMic and Philips.SpeechMike assembly versions distributed with that Dragon Medical SpeechKit package. Newer versions that the vendor guarantees to be binary backwards compatible can also be used.
  • The GetAudioDevices() function and the AudioDevice property are deprecated. It's still possible, but not recommended to use them on the shared session object to retrieve the available audio devices and override the default device.
  • The user can select a microphone via the user interface. The selected microphone will be remembered for the user and given precedence over any integration-defined audio device. For more information, see the 'Speak' topic of the integrated end user help.

Customizable buttons

You can customize some microphone buttons through your integration. When users press these buttons, Dragon Medical SpeechKit sends notifications to your app through the ControlDeviceEventReceived event. Use these notifications to trigger custom functionality in your app, such as opening and closing a report. For more information, see: Session events.

To get notifications about button presses, follow these steps:

  1. Add an event handler for the ControlDeviceEventReceived event exposed by the ISessionEvents interface. This event handler is invoked whenever the user presses a customizable microphone button while the session is open.

  2. In the event handler, invoke the corresponding functionality based on the value of the cdEvent parameter. This parameter is one of the values of the ControlDeviceEvent enumeration, indicating which microphone button the user pressed.

Button mapping

The Nuance PowerMic III buttons are as follows:

PowerMic button names

The mapping between the ControlDeviceEvent enumeration values and the physical microphone buttons varies depending on the microphone model.

This table shows the mapping for Nuance PowerMic and Philips SpeechMike devices:

ControlDeviceEvent value Nuance PowerMic III button name Philips SpeechMike button name Nuance PowerMic 4 button name Default Dragon Medical One functionality
Button1Pressed Transcribe EOL Rear function button Transfer text
Button2Pressed Enter/Select Command Enter/Select Accept defaults
Button3Pressed Customizable Right Insert/Overwrite Function D Show/hide dictation box
Button4Pressed Tab Backward F1 Tab Backward Previous field
Button5Pressed Tab Forward F2 Tab Forward Next field
Button6Pressed Customizable Left F4 Function B No default
Button7Pressed Reserved for future use Reserved for future use Reserved for future use No default
Button8Pressed Not mapped to a button F3 Function C No default
Button9Pressed Not mapped to a button Not mapped to a button Function A No default

Unify SpeechMike and PowerMic 4 button events

By default, Philips SpeechMike and Nuance PowerMic 4 use different button event mappings. This means pressing the same physical button on either device triggers a different ControlDeviceEvent value, as indicated in the Philips SpeechMike and Nuance PowerMic 4 button name columns in the button mapping section above.

For example, pressing the SpeechMike EOL button triggers Button1Pressed by default, while pressing the PowerMic 4 rear function button also triggers Button1Pressed. Without standardization, your integration must accommodate device-specific mappings individually.

To streamline this process and eliminate the need to handle two sets of button events, set SpeechMikeButtonMappingAsPowerMicEnabled to true on the shared session instance:

  • Session.SharedSession.SpeechMikeButtonMappingAsPowerMicEnabled = true;

You can configure this setting before or after Session.Open().

When enabled, SpeechMike button presses correspond to the ControlDeviceEvent values listed in the Nuance PowerMic 4 column of the button mapping table, enabling unified button behavior across both devices.

Non-customizable buttons

You can't customize the following microphone buttons: Play, Stop, Record, Fast Forward, and Fast Rewind. No values of the ControlDeviceEvent enumeration map to these buttons. Your app doesn't receive notifications when these buttons are pressed.

These buttons provide the following standard functionality out of the box:

  • Record: Starts recording audio.

  • Stop: Stops recording.

  • Fast Forward: Moves the cursor to the next field.

  • Fast Rewind: Moves the cursor to the previous field.

For more information on using these buttons, see the 'Microphones' topic in the Help section of the personalization & help window.