These two recognizers aim at performing real-time incremental recognition for text and gestures on transient ink. They are intended to address input-method writing solutions based on iink SDK, where your application performs the strokes capture and rendering. They simplify iink SDK integration.
Both recognizers process the first strokes in the background while the user keeps writing more strokes. That background recognition process starts as soon as the first stroke is written.
In order to use the recognizers, you need to create an Engine object to set the runtime environment.
Once the Engine is created, you can create your Recognizer object by indicating its type (either Text
or Gesture
) and can then send PEN events to it.
You can register a IRecognizerListener to the Recognizer.
When a recognition result has changed, an event notifies the IRecognizerListener with the resultChanged method.
The recognition configuration for the Text Recognizer is based on the same principles as the Engine configuration, except that it uses dedicated configuration keys with a recognizer.
prefix :
For instance, recognizer.lang
is used to configure the recognition language.
By default, text guides are disabled, but you can enable the guides of a Text Recognizer via the recognizer.text.guides.enable
key. In addition, you can tune their spacing and start origin.
By default, the Text Recognizer recognizes both “classical” handwriting, whether print or cursive. But its configuration can be changed to recognize superimposed handwriting: To learn more, check MyScript ready-to use resources section.
When performing batch recognition, it is now possible to configure the maximum number of threads to be used by the engine for text recognition,
by setting max-recognition-thread-count
configuration value to the number of threads to be used (default is 1).
This tuning might be relevant when sending at one time with the pointerEvents API, a large set of strokes that you have previously collected, to optimize the usage of CPU cores.
It is advised however, to leave this configuration to 1 if you are doing incremental recognition, as it may have a negative impact on performances and accuracy.
Supported gestures are defined thanks to recognizer.gesture.
prefixed keys.
recognizer.result.default-format
defines the format of the result provided via the IRecognizerListener resultChanged method.
➤ Refer to the configuration page, to get the full list of recognizer configuration.
The write to type example gives you a hint how to implement scribble like feature relying on the Recognizer API of iink SDK. It is available on the MyScript Git repository containing the additional examples for the Android platform. This sample comes with a description that helps you understand its principle.
It is based on a contextless gesture recognition combined with a text recognition. To run both recognitions simultaneously, two instances of Recognizer are created - one for Gesture recognition and the other one for Text recognition.
➤ Should you need more details, refer to the API documentation documentation and/or ask question on our developer forum.