Мы успешно используем клиентскую библиотеку Google Java с речевым API для обнаружения динамиков в аудиофайлах с использованием SeparateRecognitionPerChannel
и SpeakerDiarization
.Однако по состоянию на прошлой неделе ответ от Google больше не возвращает тег канала или тег динамика.
Это RecognitionConfig, который мы используем для одноканальных аудиофайлов:
RecognitionConfig config = RecognitionConfig.newBuilder()
/* other settings ... */
.setEnableSpeakerDiarization(true)
.setDiarizationSpeakerCount(2)
.build()
И для двойногофайлы каналов:
RecognitionConfig config = RecognitionConfig.newBuilder()
/* other settings ... */
.setAudioChannelCount(2)
.setEnableSeparateRecognitionPerChannel(true)
.build()
Затем мы вызываем longRunningRecognizeAsync
с этой конфигурацией и ждем ответа, который мы обрабатываем следующим образом:
List <SpeechRecognitionResult> response = response.get().getResultsList()
response.each { speechRecognitionResult ->
println(speechRecognitionResult.getChannelTag()) // !! Always outputs 0
SpeechRecognitionAlternative alternative = speechRecognitionResult.getAlternatives(0)
alternative.getWordsList().each { word ->
println(word.getSpeakerTag()) // !! Always outputs 0
}
}
Что-то не так с этой методологией?Или изменился API для преобразования речи в текст, так что теперь нам нужно вызывать разные методы для получения динамиков?