Доступные языки для распознавания речи - PullRequest
3 голосов
/ 06 мая 2010

Из того, что я прочитал, распознавание речи доступно для 3 языков: английский (Великобритания, США, Au ..), японский и китайский (мандарин).

Кто-нибудь знает более подробную информацию о том, как переключаться между этими языками? Есть ли способ узнать (программно), какой язык активен для распознавания речи на определенном устройстве? (может быть, в Японии есть только японцы ... но могу ли я получить эту информацию как-нибудь ... как собственность или что-нибудь в этом роде?).

Любая помощь в этом отношении будет оценена.

Спасибо, ребята.

Ответы [ 2 ]

3 голосов
/ 25 октября 2011

Чтобы переключаться между языками, просто используйте локаль, которую вы хотите для языка, и установите Locale.toString для EXTRA_LANGAUGE в вашем ACTION_RECOGNIZE_SPEECH намерении.

Чтобы проверить, какие языки доступны, вам нужно что-то вроде этого:

    Intent detailsIntent = new Intent(
            RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
    LanguageDetailsChecker checker = new LanguageDetailsChecker();
    sendOrderedBroadcast(detailsIntent, null, checker, null,
            Activity.RESULT_OK, null, null);

Где LanguageDetailsChecker - это BroadcastReceiver, определенный как-то так:

public class LanguageDetailsChecker extends BroadcastReceiver {

    private static final String TAG = "LanguageDetailsChecker";

    private List<String> supportedLanguages;

    private String languagePreference;

    public LanguageDetailsChecker() {
        supportedLanguages = new ArrayList<String>();
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle results = getResultExtras(true);
        if (results.containsKey(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE)) {
            languagePreference = results
                    .getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
        }
        if (results.containsKey(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES)) {
            supportedLanguages = results
                    .getStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
        }
    }
}

Весь этот код является частью этого проекта .

0 голосов
/ 21 мая 2010

Возможно, вы захотите взглянуть на android.speech.RecognizerIntent. Похоже, вы можете получить информацию о поддержке языка оттуда, вызвав getVoiceDetailsIntent ().

Посмотрите здесь документы API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...