If in doubt, check out the
#hardware channel in Slack.
Speech recognition will be vastly improved with a better microphone. Compared to webcams and cheap headsets, a good microphone for speech recognition picks up less background noise (improving your experience whenever you’re not alone in a silent room) and will be better at recording a natural-sounding voice.
These are models that Talon community members regularly recommend:
Blue Yeti Nano (USB 3): desktop, affordable and pretty good recognition. Can be attached to an arm. Useful if you’re trying out speech recognition for the first time and don’t want to spend a lot.
Samson Q9u: a step up from the Blue Yeti, but still affodable desktop mic that can be operated as either USB and XLR.
DPA d:fine 4188 or 4288: expensive, but highly recommended for full time use. It’s likely the best in wearing comfort, audio quality and voice isolation (see this impressive demo from the manufacturer). The DPA mic can be paired with either (i) a Shure X2U + microdot to XLR adapter or (ii) a DPA d:vice interface. (i) will be cheaper, but a bit less portable, than the latter; (i) does however have a live monitor (you can plug in headphones and hear the computer audio mixed with your voice), whereas (ii) doesn’t.
Audio-Technica BP894: a much more budget-friendly alternative to the DPA microcapsule microphones above, but still excellent comfort, quality, and voice isolation. This model has been discontinued in favor of the BP894x so there are some great deals to be had ($100-300 (depending if you want to make it wireless). Check out #BP894_fan_club on Slack for tips on picking the right termination and adapter for your needs.
Stenomask: useful for open plan offices as it covers your mouth.
XLR Microphones and USB XLR Audio interfaces as a budget-minded alternative to the DPA combo:
Plug-In powered mics
The Speechrecsolutions selection guide lists options at several price-points. We don’t know about each and every model, but you can ask on
#hardware for some experience report.
BOYA BY-M1: cheap ~$15 clip-on lavalier mic useful for getting comfortable with Talon. Much better speech recognition and latency than most bluetooth headphones and webcam mics. Only useable if you’re the only speaker in the room, though it does cope well with non-speech background noise (e.g. fans, washing machines). May need an adapter if your device has separate input/output connectors.
Many microphones used by studio professionals and ambitious podcasters will likely work well, but gaming and call-center headsets can be hit or miss. But beware: While technical specs may suggest issues, on their own they cannot guarantee success! Generally speaking:
Some people do report success with much cheaper microphones, but many also do not. If you already have one, just try it out, but if not, think twice before buying cheap.
Windows default drivers have a limitation and that they cannot record and play stereo sound simultaneously. See this stackoverflow answer for more details. For this reason, if you want to hear audio while dictating, you must use a wired (or plug in your) headset on Windows. OSX does not have this limitation.
Check out the
#eye-tracking channel in Slack, and the Tobii 4c Tips page.
Talon and Tobii software clash a bit. But you can keep the Tobii driver installed, and only disable the Tobii service, you can keep using the Tobii as a Windows Hello device (login via facial recognition), even while having the Tobii available for Talon.
Foot pedals provide another alternative input method, though they often require intensive customization. The use cases for foot pedals varies and can be unique to a specific workflow, but there are few that are more common: scrolling, muting, and mouse replacement.
The customization for foot pedals is more involved than editing Talon files, and it helps to be familiar with the ctx python api especially for more complex use cases. There are some limitations as well. For example, the foot pedal needs to bind to a key that is not otherwise being used, e.g., some users have used
keypad_minus. Also, some actions don’t work well with Talon hotkeys, and
user.vscode Talon community commands can have timeout issues. To bind pressing two pedals at once, some users have needed to use cron and asyncronous reading of a state dictionary. This is since you cannot press two keys at once without a modifier (and if a modifier like
shift is pressed, then it simply becomes one key combination, not multiple presses)
With the talon beta, the elegato foot pedal can be used as follows:
deck(pedal_left): print("left pedal") deck(pedal_middle): print("middle pedal") deck(pedal_right): print("right pedal")
With gamepad support in Talon you can recieve input from gamepads and/or joysticks. To check if your gamepad works with Talon, view the log after startup and look for a message after all the user scripts are read in. It should display something like
INFO Gamepad Attach: $CONTROLLER_ID ($CONTROLLER_NAME) Gamepad input is particularly useful since it doesn’t require you to use a hotkey (Pressing a different key from a Talon hotkey is often error prone, since the key is still held down while the other is pressed). Additionally, gamepads like the Logitech Adaptive Gaming Kit and the Xbox Adaptive Controller are useful ways to add physical buttons to your setup that don’t require fine motor control.
Gamepad presses can be captured in .talon files similar to key presses
gamepad(dpad_up): print("dpad_up") gamepad(dpad_down): print("dpad_down") gamepad(east): print("east/B") gamepad(south): print("south/A")
A helpful list of all the other gamepad buttons with an associated gamepad button tester written Andreas Arvidsson can be found here. This Talon script can help you set up your controller inputs.
Custom gamepads can be useful for creating your own foot pedal or alternate input methods. If you have experience with Arduino or Raspberry Pi programming, you can take advantage of many types of sensors that don’t require hand usage.
On Windows, for your controller to work with Talon it must support XInput (most modern controllers that mimic an Xbox controller do). If you are using an old/abnormal controller or a custom arduino device, you will likely need to use a tool like XOutput to remap DirectInput to XInput. This also allows you to remap keys from the default output to a particular desired button or stick on a standard Xbox controller.
On Linux if you are using a custom controller you may need to set the
SDL_GAMECONTROLLERCONFIG environment variable before launching Talon. Otherwise even though the controller may be recognized, it may be the case that no input will be captured. This environment variable specifies the proper mapping between the unmapped hardware button press and the corresponding controller button. The SDL2 Gamepad Tool by General Arcade can automatically generate the mappings for this environment variable. Make sure to place this environment variable in your shell such that it is set by default on login and in any subshells.