SuperAPI AI 工具集

telnyx-voice-media-java

智能体与模型

查看项目

更新于 10-16 03:57

技能介绍

用途

telnyx-voice-media-java 是一个 Java 技能包,提供 Telnyx Voice Media 相关能力,用于在通话中播放音频、进行文本转语音(TTS)朗读以及录制通话。适用于构建 IVR 系统、播放公告、录制对话等场景。

主要能力

  • 播放音频 URL:在通话中播放音频文件;连续下发多个播放命令时,音频会进入队列等待播放。注意:启用 overlay 时,target_legs 仅限 self。
  • 停止音频播放:停止通话中正在播放的音频,相关 Webhook 为 call.playback.ended 或 call.speak.ended。
  • 录音暂停 / 恢复:暂停或恢复通话录音,资料说明这两条命令没有关联的 Webhook。
  • 录音开始 / 停止:开始录音(通话挂断时自动停止,或通过停止录音命令结束),相关 Webhook 包括 call.recording.saved、call.recording.transcription.saved、call.recording.error。
  • 文本转语音(Speak):将文本转换为语音并在通话中播放;连续多条 speak 命令同样会排队播放,相关 Webhook 为 call.speak.started、call.speak.ended。
  • Webhook 事件:涵盖 callPlaybackStarted、callPlaybackEnded、callRecordingError、callRecordingSaved、callRecordingTranscriptionSaved、callSpeakStarted、callSpeakEnded,并列出各自 payload 字段。
  • Webhook 签名校验:Telnyx 使用 Ed25519 对 Webhook 签名,请求包含 telnyx-signature-ed25519 与 telnyx-timestamp 头,可通过 client.webhooks().unwrap() 校验。

使用方式

安装依赖(Maven):

<dependency>
    <groupId>com.telnyx.sdk</groupId>
    <artifactId>telnyx</artifactId>
    <version>6.89.0</version>
</dependency>

Gradle:

implementation("com.telnyx.sdk:telnyx:6.89.0")

初始化客户端:

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

TelnyxClient client = TelnyxOkHttpClient.fromEnv();

资料说明所有示例均假设 client 已按上述方式初始化。

错误处理:所有 API 调用都可能因网络错误、限流(429)、校验错误(422)或认证错误(401)而失败,生产代码应始终处理错误。常见错误码:401 无效 API key、403 权限不足、404 资源未找到、422 校验错误、429 限流(建议指数退避重试)。

命令端点与示例:

  • 播放音频 URL:POST /calls/{call_control_id}/actions/playback_start,可选参数包括 audio_type(mp3、wav)、audio_url、cache_audio、client_state、command_id、loop、media_name、overlay、playback_content、stop、target_legs。
  • 停止音频播放:POST /calls/{call_control_id}/actions/playback_stop,可选参数 client_state、command_id、overlay、stop。
  • 录音暂停:POST /calls/{call_control_id}/actions/record_pause,可选 client_state、command_id、recording_id。
  • 录音恢复:POST /calls/{call_control_id}/actions/record_resume,可选 client_state、command_id、recording_id。
  • 录音开始:POST /calls/{call_control_id}/actions/record_start,必填 format、channels;可选参数包括 custom_file_name、max_length、play_beep、recording_track(both、inbound、outbound)、timeout_secs、transcription、transcription_engine、transcription_language、transcription_max_speaker_count、transcription_min_speaker_count、transcription_profanity_filter、transcription_speaker_diarization、trim(trim-silence)等。
  • 录音停止:POST /calls/{call_control_id}/actions/record_stop,可选 client_state、command_id、recording_id。
  • Speak 文本:POST /calls/{call_control_id}/actions/speak,必填 payload、voice;可选参数包括 language、loop、payload_type(text、ssml)、service_level(basic、premium)、stop、target_legs(self、opposite、both)、voice_settings。

资料给出了对应的 Java 示例代码,例如:

ActionStartRecordingParams params = ActionStartRecordingParams.builder()
    .callControlId("v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ")
    .channels(ActionStartRecordingParams.Channels.SINGLE)
    .format(ActionStartRecordingParams.Format.WAV)
    .build();
ActionStartRecordingResponse response = client.calls().actions().startRecording(params);
ActionSpeakParams params = ActionSpeakParams.builder()
    .callControlId("v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ")
    .payload("Say this on the call")
    .voice("female")
    .language("en-US")
    .build();
ActionSpeakResponse response = client.calls().actions().speak(params);

适用场景

  • IVR 系统:通过播放音频与 speak 文本实现语音菜单与导航。
  • 播放公告:向通话播放音频文件或 TTS 语音。
  • 录制对话:开始/停止/暂停/恢复通话录音,并可选转写。

限制

  • 启用 overlay 时,target_legs 仅限 self。
  • 连续下发多条播放或 speak 命令时,音频会排队等待播放。
  • 录音暂停与恢复命令没有关联的 Webhook 事件。
  • 录音会在通话挂断时停止。
  • 生产环境应在处理 Webhook 前验证 Ed25519 签名。
  • 资料未提供价格、收费或配额信息。

暂未提供

资料未提供关于价格、计费方式、并发上限、可用区域等具体信息。