Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

🎙️ Handsfree Audio Development Interface

License

NotificationsYou must be signed in to change notification settings

OpenASR/idiolect

Repository files navigation

idiolect icon idiolect

Deploy

A general purposevoice user interface for the IntelliJ Platform, inspired byTavis Rudd.Possible use cases: visually impaired andRSI users. Originally developed as part of aJetBrains hackathon, it is now a community-supported project. For background information, check outthis presentation.

See Also

Usage

To get started, press theVoice control button in the toolbar, then speak a command, e.g. "Hi, IDEA!" Idiolect supports a simplegrammar. For a complete list of commands, please refer tothe wiki. Click the button once more to deactivate.

Voice Commands

For a full list of all actions that can be activated by voice ask Idiolect:

What can I say?

or

What can I say about "activate"?

Command tab

There area lot of actions, and some of them are not easy to say or remember. To make it easier you cancustomise the phrases.

Edit custom phrases

Some of the more useful commands are:

Navigation

  • activate project tool window (commit, database, debug, find, gradle, run, terminal...)
  • back/forward, down/up, left/right, page up/down, scroll up/down
  • next/previous word
  • method down/up
  • find, find in project
  • go to ... (class, bookmark, declaration, line, implementation...)
  • close all editors
  • next method
  • find usages
  • call hierarchy

Editing

  • create (editor config file, grpc request action, liquibase changelog, vue single file comp)
  • new class/dockerfile/element/file...
  • code cleanup
  • code completion
  • collapse block
  • extract class/function/method/etc
  • generate getter/setter/test method...
  • new class (or "create new class "something")
  • rename (or rename to "something")
  • cut / copy / paste / delete
  • cut line end/backward
  • delete to (line/word) (start/end)
  • toggle column mode
  • reformat code
  • fix it
  • whoops

Debugging

  • debug
  • context debug
  • context run
  • coverage

Git Commands

  • git add/pull/merge/push/stash...
  • checkin files
  • annotate

Building

For Linux or macOS users:

git clone https://github.com/OpenASR/idiolect && cd idiolect && ./gradlew runIde

For Windows users:

git clone https://github.com/OpenASR/idiolect & cd idiolect & gradlew.bat runIde

Recognition works with most popular microphones (preferably 16kHz, 16-bit). For best results, minimize background noise.

Contributing

Contributors who have IntelliJ IDEA installed can simply open the project. Otherwise, run the following command from the project's root directory:

./gradlew runIde -PluginDev

Architecture

Idiolect is implemented using theIntelliJ Platform SDK. For more information about the plugin architecture, please refer tothe wiki page.

Integration with Idiolect

plugin.xml defines a number of<extensionPoint>s which would allow other plugins to integrate with or extend/customise the capabilities of Idiolect.

An example of this is provided inidiolect-azure which implementsAsrProviderand adds its own settings underTools/Idiolect.

AsrProvider

Listens for audio input, recognises speech to text and returns anNlpRequest with possible utterances.Doesnot resolve the intent.

Possible alternative implementations could:

  • integrate with Windows SAPI 5 Speech API
  • integrate with Dragon/Nuance API

NlpProvider

Processes anNlpRequest.The default implementation invokesIdeService.invokeAction(ExecuteVoiceCommandAction, nlpRequest)and the action is handled byExecuteVoiceCommandAction andActionRecognizerManager.handleNlpRequest()

AsrSystem

Processes audio input, recognises speech to text and executes actions.The default implementationAsrControlLoop uses theAsrProvider andNlpProvider.

Some APIs such as AWS Lex implement the functionality ofAsrProvider andNlpProvider in a single call.

IntentResolver

Processes anNlpRequest (utterance/alternatives) and resolves anNlpResponse withintentName andslots.ActionRecognizerManager.handleNlpRequest() iterates through theIntentResolvers until it finds a match.

The Idiolect implementations use either exact-match or regular expressions on the recognized text.Alternative implementations may use AI to resolve the intent.

CustomPhraseRecognizer

Many of the auto-generated trigger phrases are not suitable for voice activation. You can add your own easier tosay and remember phrases in~/.idea/phrases.properties

IntentHandler

Fulfills anNlpResponse (intent + slots), performing desired actions.ActionRecognizerManager.handleNlpRequest() iterates through theIntentHandlers until the intent is actioned.

TemplateIntentHandler

Handles two flavours of intent prefix:

  • Template.id.${template.id} eg:Template.id.maven-dependency
  • Template.${template.groupName}.${template.key} eg:Template.Maven.dep

template.id is often null.template.key is the "Abbreviation" that you would normally type before pressingTAB.

The default trigger phrases are generated from the template description or key and are often not suitable for voice activation.You can add your own trigger phrase -> live template mapping in~/.idea/phrases.properties and it will be resolved byCustomPhraseRecognizer.

ttsProvider

Reads audio prompts/feedback to the user

org.openasr.idiolect.nlp.NlpResultListener

Any interfaces which are registered to the topic in plugin.xml under<applicationListeners> will be notified when

  • listening state changes
  • recognition is returned by theAsrProvider
  • request is fulfilled by anIntentHandler
  • there is a failure
  • a prompt/message is provided for the user

Plugin Actions

plugin.xml defines<action>s:

This action is invoked when the user clicks on theVoice control button in the toolbar.This simply tellsAsrService to activate or standby.When theAsrService is active, theAsrSystem,

by defaultASRControlLoop(see below).

A debugging aid to use one of theActionRecognizerextension classes configured inplugin.xml to generate anActionCallInfowhich is thenrunInEditor().

Similar toExecuteActionFromPredefinedText but uses theIdiolect.VoiceCommand.Text data attached to the invokingAnActionEvent.

IDEA Actions

There are many Actions (classes which extendAnAction) provided by IDEA:

ASRControlLoop

WhenAsrControlLoop detects an utterance, it invokesPatternBasedNlpProvider.processUtterance()which typically callsinvokeAction() and/or one or more of the methods ofIdeService

Programming By Voice

Maintainers

Sponsor this project

  •  
  •  

Packages

 
 
 

Contributors5


[8]ページ先頭

©2009-2025 Movatter.jp