You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android语音识别音频源切换问题及USB音频路由禁用需求

问题描述

我们使用遵循UAC协议的HDMI采集设备渲染音视频时,该设备会被注册为输入音频设备并成为语音引擎的默认输入源。需要将语音引擎的输入音频源切换为内置底部麦克风或后置CAMCORDER麦克风。

尝试过的方案

参考相关代码实现自定义音频源输入,但仅使语音引擎静音,未达到切换输入源的需求,代码如下:

val SAMPLE_RATE = 44100
val CHANNEL_CONFIG = AudioFormat.CHANNEL_IN_MONO
val AUDIO_FORMAT = AudioFormat.ENCODING_PCM_16BIT
// val bufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_CONFIG, AUDIO_FORMAT)

val audioRecord = AudioRecord.Builder()
    .setAudioSource(MediaRecorder.AudioSource.CAMCORDER)
    .setAudioFormat(AudioFormat.Builder()
        .setEncoding(AUDIO_FORMAT)
        .setSampleRate(SAMPLE_RATE)
        .setChannelMask(CHANNEL_CONFIG)
        .build())
// .setBufferSizeInBytes(bufferSize)
.build()

val fileDescriptors = ParcelFileDescriptor.createReliablePipe()
val clientRead = fileDescriptors[0]
audioRecord.startRecording()

Thread {
    try {
        val audioSink = fileDescriptors[1]
        ParcelFileDescriptor.AutoCloseOutputStream(audioSink).use { fos ->
            val buffer = ByteArray(audioRecord.bufferSizeInFrames)
            while (isListening) {
                val bytesRead =
                    audioRecord.read(buffer, 0, buffer.size, AudioRecord.READ_BLOCKING)
                if (bytesRead > 0) {
                    fos.write(buffer)
                }
            }
        }
    } catch (e: Exception) {
        e.printStackTrace()
    }

    audioRecord.stop()
    audioRecord.release()
}.start()

speechIntent.putExtra("android.speech.extra.AUDIO_SOURCE", clientRead)
speechIntent.putExtra("android.speech.extra.AUDIO_SOURCE_ENCODING", AUDIO_FORMAT)
speechIntent.putExtra("android.speech.extra.AUDIO_SOURCE_SAMPLING_RATE", SAMPLE_RATE)
speechIntent.putExtra("android.speech.extra.AUDIO_SOURCE_CHANNEL_COUNT", CHANNEL_CONFIG)
speechRecognizer.startListening(speechIntent)
设备环境
  • Android 13
  • Google Speech Recognition v20230807
待解决的疑问
  1. 如何正确实现将语音引擎的输入源切换为指定的内置麦克风(底部或CAMCORDER)?
  2. 是否存在程序化禁用USB音频外设自动路由的可行方案?

内容的提问来源于stack exchange,提问作者Qamar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:23:38