Azure Познавательный сервис неверно истолковывает сильный акцент - PullRequest
0 голосов
/ 25 февраля 2020

Я использую Azure speech SDK для преобразования голоса в текст. Вот фрагмент кода

AutoDetectSourceLanguageConfig autoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig.fromLanguages(Arrays.asList("en-US", "es-MX"));
SpeechConfig config = SpeechConfig.fromSubscription("key", "SERVICEREGION");
SpeechRecognizer reco = new SpeechRecognizer(config,autoDetectSourceLanguageConfig);
Future<SpeechRecognitionResult> task = reco.recognizeOnceAsync();
SpeechRecognitionResult result = task.get();
            if (result.getReason() == ResultReason.RecognizedSpeech) {
                strSpeechText = result.getText();
                log.info("*******CUSTOMER SAID " + strSpeechText+" *******");
                AutoDetectSourceLanguageResult autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.fromResult(result);
                detectedLanguage = autoDetectSourceLanguageResult.getLanguage();
                log.info("*******LANGUAGE IDENTIFIED AS " + detectedLanguage+" *******");
            }
            else if (result.getReason() == ResultReason.NoMatch) {
                log.info("NOMATCH: Speech could not be recognized.");
            }
            else if (result.getReason() == ResultReason.Canceled) {
                CancellationDetails cancellation = CancellationDetails.fromResult(result);
                log.info("CANCELED: Reason=" + cancellation.getReason());

                if (cancellation.getReason() == CancellationReason.Error) {
                    log.info("CANCELED: ErrorCode=" + cancellation.getErrorCode());
                    log.info("CANCELED: ErrorDetails=" + cancellation.getErrorDetails());
                    log.info("CANCELED: Did you update the subscription info?");
                }
            }
            reco.close();

Так как мой акцент сильный / сильный, он неправильно интерпретирует язык как es-MX (испанский sh), и вывод текста полностью отличается от того, что я говорил

Если я игнорирую autoDetectSourceLanguageConfig и использую SpeechRecognizer reco = new SpeechRecognizer(config); Это истолковывает мой голос, и вывод текста - именно то, что говорится. Но AutoDetectSourceLanguageResult autoDetectSourceLanguageResult = AutoDetectSourceLanguageResult.fromResult(result); detectedLanguage = autoDetectSourceLanguageResult.getLanguage(); дает пустые результаты. поэтому я не смогу определить разговорный язык, если бы он был англичанином sh или испанским sh

Намерение - это и английские sh & испанские sh голоса, которые необходимо идентифицировать и интерпретировать, чтобы дать правильный вывод текста и классификация языков

Любые указатели, пожалуйста?

Спасибо, Виджай

...