Google speech recognition language not setup correctly for English
See original GitHub issueThe supported languages are defined in
ailib/src/main/java/ai/api/AIConfiguration.java
/**
* Currently supported languages
*/
public enum SupportedLanguages {
English("en"),
...
public static SupportedLanguages fromLanguageTag(final String languageTag) {
switch (languageTag) {
case "en":
return English;
The language string does not correctly setup the google recognizer, taking into account country accent i.e. en-US vs en-GB
The android specification for EXTRA_LANGUAGE http://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_LANGUAGE shows that it should be Optional IETF language tag (as defined by BCP 47), for example “en-US”
I suggest adding additional enums for atleast “en-US” and “en-GB”
I’ve tested replacing “en” with “en_GB” in the following code i.e. final String language = “en_GB”;
ailib/src/main/java/ai/api/services/GoogleRecognitionServiceImpl.java
private Intent createRecognitionIntent() {
final Intent sttIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
final String language = config.getLanguage().replace('-', '_');
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
sttIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, language);
and I get much better speech recognition for my uk accent once this has been implemented.
Issue Analytics
- State:
- Created 7 years ago
- Reactions:1
- Comments:7 (5 by maintainers)
Hi, @macavalon The changes released in version 1.9.0
Thanks.
Hi, @macavalon Great! Thanks for the info 👍 The changes will be released in nearest time.
Thanks!