![]()
75%的美国天主教徒一年去不了1次忏悔室。只有2%的人坚持每月去。Pew研究中心和乔治城大学CARA的数据摆了十几年,曲线只朝一个方向走。
我做了Mass Time,一个iOS应用,索引了28万座教堂、60篇祷文、每日读经。从数据侧看了很多年:人们想去,但焦虑。不知道该说什么。太久没去,愧疚本身成了不再去的理由。
2025年,已故教皇方济各宣布禧年,明确呼吁增加和好圣事的可及性。需求真实存在。基础设施没有。
于是我做了这个AI告解引导工具。AI永远替代不了神父,只有神父能赦罪。这只是准备工具。你对手机说话,手机回话。7种语言,不用键盘,就是一场对话,帮你理清思路再走进那个隔间。
技术栈:Amazon Nova 2 Sonic,双向语音转语音模型,跑在Amazon Bedrock AgentCore Runtime上。我遇到的bug是最讨厌的那种:静默、隐形、看起来合理到让你怀疑一切,唯独没怀疑真正的问题。
![]()
纸上简单。实践残酷。
双向语音:一个模型的两面
Nova 2 Sonic扛下所有重活。原始音频进去,双向处理,音频出来。没有独立的语音识别或语音合成管道。一个模型,两个方向,实时。
服务端是Python 3.13容器,AgentCore Runtime。客户端原生Swift,AVAudioEngine。没有WebView,没有React Native。7个多语言音色:英语Matthew、法语Florian、西班牙语Carlos、意大利语Lorenzo、德语Lennart、葡萄牙语Leo、印地语Arjun。用户可以在对话中途切换语言,AI会跟上。
有个区域限制值得记住:Nova 2 Sonic只在us-east-1、us-west-2、ap-northeast-1可用。我第一次部署到us-east-2,返回model-not-found错误,这个教训是硬吃的。
![]()
但模型死活不响应语音。我试了Strands Agents SDK、原始API调用、换提示词、换音色。全没用。
麦克风的音频RMS值看起来正常。波形有能量。一切似乎都正常。
一行Swift代码错了。
// 错误:读取指针的指针内存(垃圾音频) Data(bytes: outBuf.int16ChannelData!, count: ...)
// 正确:读取实际音频样本 Data(bytes: outBuf.int16ChannelData![0], count: ...)
int16ChannelData是UnsafePointer>,指向通道指针数组的指针。不加[0],你读取的是指针地址本身,当成音频样本。
RMS看起来合理,因为内存地址碰巧数值很高。模型收到的是垃圾,在所有指标上都像音频,唯独在一个关键指标上不像:它
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.