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

Amazon Connect语音邮件配置:如何将Kinesis流音频存储至S3桶

将Amazon Connect实时媒体流的语音邮件存储到S3桶的解决方案

1. 先确认Kinesis Video Streams(KVS)的基础配置

  • 检查Amazon Connect实例的「实时媒体流」设置,已绑定正确的KVS流ARN,且Connect的服务角色拥有kinesisvideo:PutMedia权限,确保语音数据能正常流入KVS。
  • 确认KVS流状态为「活跃」,可以在KVS控制台查看流入的媒体片段数量,验证数据传输正常。

2. 用Lambda处理KVS中的媒体片段

KVS存储的是碎片化的语音数据,需要拉取并拼接成完整的语音文件:

  • 创建Lambda函数,触发方式可选:要么用CloudWatch Events定时批量处理,要么配置KVS的片段通知触发实时处理。
  • 在Lambda里用AWS SDK(比如Python的boto3)调用KVS的ListFragments获取指定时间/呼叫ID对应的片段,再用GetMedia拉取片段的原始音频数据。
  • 按片段的时间顺序拼接原始G.711格式数据(Connect语音流默认是G.711 μ-law,直接拼接即可,无需解码)。

3. 音频格式转换(可选)

如果需要转换成MP3/WAV这类通用格式:

  • 给Lambda添加包含ffmpeg的层(因为音频处理库依赖ffmpeg),然后用pydub库做格式转换:
from pydub import AudioSegment

# 加载原始G.711 μ-law音频
raw_audio = AudioSegment.from_file("temp_audio.g711", format="mulaw", frame_rate=8000, channels=1)
# 导出为MP3
processed_audio = raw_audio.export("voicemail.mp3", format="mp3")

4. 上传到目标S3桶

  • 给Lambda执行角色添加S3:PutObject权限,指定目标S3桶。
  • 用boto3将处理好的音频文件上传,建议用呼叫ID作为文件名前缀,方便后续检索:
import boto3

s3_client = boto3.client('s3')
s3_client.put_object(
    Bucket='你的目标S3桶名称',
    Key=f'voicemails/{呼叫ID}.mp3',
    Body=processed_audio.read()
)

5. 监控与容错

  • 在Lambda中添加日志输出,用CloudWatch Logs监控处理流程,排查拉取片段、转换、上传环节的错误。
  • 给S3桶配置生命周期规则,比如将超过30天的语音邮件归档到Glacier,降低存储成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:16:13