You need to enable JavaScript to run this app. 使用Java API调用Dialogflow CX获取意图检测的文本与音频响应
优惠活动
大模型
产品
解决方案
定价
更多

使用Java API调用Dialogflow CX获取意图检测的文本与音频响应

核心逻辑差异说明

Dialogflow CX 与 Dialogflow ES 的响应生成逻辑存在明确区别:默认同步意图检测请求不会自动生成文本转语音的音频输出,必须在请求构造阶段显式声明音频生成的相关配置,触发后端TTS流程,才会在响应中返回可直接播放的音频内容。

可直接落地的实现方案

关键配置要求

  • 构造请求时,除了已有的会话标识、文本输入参数外,必须额外通过QueryParameters传入OutputAudioConfig实例,这是CX服务端开启TTS音频生成的唯一触发开关
  • 生成的二进制音频内容会挂载在DetectIntentResponse的顶层outputAudio字段中,不会嵌套在文本响应消息内
  • 若未在代码中自定义TTS语音参数,服务端会自动复用Dialogflow CX控制台中为智能体配置的默认语音人、语速、音量等参数,无需重复配置

完整实现示例

// 构造音频输出配置
OutputAudioConfig audioConfig = OutputAudioConfig.newBuilder()
        // 指定输出音频编码格式,LINEAR16为通用WAV格式,全平台兼容性最优
        .setAudioEncoding(OutputAudioEncoding.LINEAR16)
        // 可选:如需覆盖控制台默认TTS配置,可在此处自定义语音人、语速等参数
        .setSynthesizeSpeechConfig(SynthesizeSpeechConfig.newBuilder()
                .setVoice(VoiceSelectionParams.newBuilder()
                        .setName("es-ES-Wavenet-A")
                        .build())
                .build())
        .build();

// 构造查询参数,挂载音频输出配置
QueryParameters queryParameters = QueryParameters.newBuilder()
        .setOutputAudioConfig(audioConfig)
        .build();

// 构造用户输入参数,与原有逻辑保持一致
QueryInput queryInput = QueryInput
                .newBuilder()
                .setLanguageCode("es-ES")
                .setText("hola")
                .build();

// 构造检测请求,新增QueryParameters配置项
DetectIntentRequest request = DetectIntentRequest.newBuilder()
                .setSession(sessionName.toString())
                .setQueryInput(queryInput)
                .setQueryParameters(queryParameters)
                .build();

DetectIntentResponse response = sessionsClient.detectIntent(request);

// 取文本响应的逻辑与原有实现完全兼容
String textResult = response.getResponseMessages(0).getText().getText(0);
// 提取二进制音频流
com.google.protobuf.ByteString audioStream = response.getOutputAudio();
// 转换为字节数组后可直接写入本地音频文件、或推送至前端播放
byte[] audioBytes = audioStream.toByteArray();
常见问题排查
  • 原返回结果中responseMessages数组末尾的空对象,是未开启音频输出时的预留占位字段,加入上述配置后该占位会自动消失
  • 你当前使用的google-cloud-dialogflow-cx 0.6.1版本已完整支持上述音频输出相关的API方法,无需升级依赖版本
  • 注意区分输入、输出的音频配置:AudioInput字段用于传入用户的语音流完成ASR识别,与本次需要的输出TTS音频无关联,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 23:24:04