본문으로 건너뛰기

Sending audio data

차량 마이크 대신 앱이 보유한 PCM 오디오를 인식하려면 sendAudio()ByteArray를 전달합니다. 이 기능은 ON_DEVICE 모드에서만 사용할 수 있습니다. 전체 데이터를 한 번에 보내거나 여러 청크로 나눠 전송할 수 있습니다.

노트

이 문서의 3,200-byte 청크와 100 ms 간격은 16 kHz, 16-bit, mono PCM을 실시간 속도로 전송하는 예시입니다. 다른 오디오 형식을 사용하는 경우 해당 형식의 100ms 분량에 맞춰 청크 크기를 계산하세요.

Send a complete buffer

val pcmData = applicationContext.assets
.open("test_audio.pcm")
.use { it.readBytes() }

speechToText.sendAudio(pcmData)
speechToText.completeAudioSend()

Stream chunks

private const val BYTES_PER_100_MS = 3_200

val pcmData = applicationContext.assets
.open("test_audio.pcm")
.use { it.readBytes() }

pcmData.asList()
.chunked(BYTES_PER_100_MS)
.forEach { chunk ->
speechToText.sendAudio(chunk.toByteArray())
Thread.sleep(100L)
}

speechToText.completeAudioSend()

마지막 오디오 데이터를 보낸 후 반드시 completeAudioSend()를 호출하여 입력이 끝났음을 알리세요. 인식 결과는 미리 등록한 ResultListener로 전달됩니다.