A better alternative for offline recognition is available here.
With this, you can add speech recognition feature to your application without google speech recognition popup (check attached example),
SpeechRecognitionNoUI
Author: @Biswajit
Version: 1.6
Here is the original thread. I took some ideas and codes to build this library.
Note: Remember to INTERNET, RECORD_AUDIO and NOTIFICATION_POLICY_ACCESS_SETTINGS permission.
For SDK v30: Add this following code to your project manifest.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Update 1.1: Added NoRecognizerBeep option. Set true if you don't want beep sound before and after speech recognition.
Update 1.2:
Update 1.4: Added proper error handling and warning message for DND mode. (Check the example)
Update 1.5: Added BufferReceived event.
Update 1.6: Fixed an issue with the offline voice recognition.
			
			With this, you can add speech recognition feature to your application without google speech recognition popup (check attached example),
SpeechRecognitionNoUI
Author: @Biswajit
Version: 1.6
- SpeechRecognitionNoUI- Events:- ReadyForSpeech
 Called when the endpointer is ready for the user to start speaking.
- BeginningOfSpeech
 The user has started to speak.
- EndOfSpeech
 The user stops speaking.
- Error (Msg As String)
 A network or recognition error occurred.
- PartialResults (Texts As List)
 Partial recognition results are available.
- Results (Texts As List)
 Recognition results are ready.
- RmsChanged (RmsValue As Int)
 The sound level in the audio stream has changed. There is no guarantee that this method will be called.
- BufferReceived(buffer() As Byte)
 The purpose of this function is to allow giving feedback to the user regarding the captured audio. There is no guarantee that this method will be called.
 
- ReadyForSpeech
- Functions:- NoRecognizerBeep As Boolean
 Set true if you dont want beep sound before and after speech recognition.
 Starting from Android 7+ this method will throw an exception if the user set the Do Not Disturb mode,
 unless your app has requested a special permission with NOTIFICATION_POLICY_ACCESS_SETTINGS.
 (Check example)
- Initialize (eventname As String, callback As Object) As Boolean
- IsInitialized As Boolean
- IsRecognitionAvailable  As Boolean
 Check if Speech Recognition is available or not
- StartListening (LANGUAGE As String, PARTIAL_RESULTS As Boolean, PREFER_OFFLINE As Boolean) As String
 Start listening.
 LANGUAGE : Recognition language. IETF language tag (as defined by BCP 47), for example "en-US"
 PARTIAL_RESULTS : indicate whether partial results should be returned by the recognizer as the user speaks.
 PREFER_OFFLINE : indicate whether to only use an offline speech recognition engine. If false then either network or offline recognition engines may be used
- StopListening As String
 
- NoRecognizerBeep As Boolean
 
- Events:
Here is the original thread. I took some ideas and codes to build this library.
Note: Remember to INTERNET, RECORD_AUDIO and NOTIFICATION_POLICY_ACCESS_SETTINGS permission.
For SDK v30: Add this following code to your project manifest.
			
				B4X:
			
		
		
		AddManifestText(
<queries>
    <intent>
        <action android:name="android.speech.RecognitionService" />
    </intent>
</queries>)Update 1.1: Added NoRecognizerBeep option. Set true if you don't want beep sound before and after speech recognition.
Update 1.2:
- Added ReadyForSpeech event.
- Fixed recognition language problem
Update 1.4: Added proper error handling and warning message for DND mode. (Check the example)
Update 1.5: Added BufferReceived event.
Update 1.6: Fixed an issue with the offline voice recognition.
Attachments
			
				Last edited: 
			
		
	
							 
				 
 
		

 
 
		 
 
		 
 
		 
 
		 
 
		