Я работаю с Speech API и хочу сделать возможным настроить службу для сред с низкой пропускной способностью.
Я заметил, что параметры качества звука настраиваются в двух местах в примере кода:
Сначала в AudioEmitter.kt
fun start(
encoding: Int = AudioFormat.ENCODING_PCM_16BIT,
channel: Int = AudioFormat.CHANNEL_IN_MONO,
sampleRate: Int = 16000,
subscriber: (ByteString) -> Unit
)
А потом в MainActivity.kt
if (isFirstRequest.getAndSet(false)) {
builder.streamingConfig = StreamingRecognitionConfig.newBuilder()
.setConfig(RecognitionConfig.newBuilder()
.setLanguageCode("en-US")
.setEncoding(RecognitionConfig.AudioEncoding.LINEAR16)
.setSampleRateHertz(16000)
.build())
.setInterimResults(true)
.setSingleUtterance(false)
.build()
}
У меня два вопроса:
Во-первых, какой минимум рекомендуетсякачество звука для речевого API?Проводил ли Google исследования по различным параметрам?
Во-вторых, два образца задают качество для разных объектов, которые не обязательно совпадают.Например, AudioFormat
содержит режимы 16BIT
и 8BIT
, а RecognitionConfig.AudioEncoding
содержит только параметр LINEAR16
.И хотя RecognitionConfig.AudioEncoding
содержит опцию FLAC
(что рекомендуется), включение FLAC
при оставлении AudioFormat.ENCODING_PCM_16BIT
на месте, кажется, прерывает поток.
Как заставить все это работать вместеи каковы мои лучшие варианты низкой пропускной способности?