我开发一个 AI Voice-to-Voice

13 天前
 tcper

最近开发了一个 Voice-to-Voice 的功能。

虽然这个功能 OpenAI 早实现了,但是他们价格巨高。

原理上并不难:人声->语音转文本->大模型回答->文本转为语音。(stt->LLM->tts)

但是具体实践中却有很多难点:

  1. microphone 声音如何压缩,如何传输到 server ,如何降低延迟?
  2. 语音流持续输入,如何判断用户的停顿?(因为语音流本质上持续有输入,就算静音也有数据)
  3. AI 返回的语音,如何让用户打断?

其实还有一个问题,就是如果 stt/LLM/tts 都调用外部服务,最后会价格失控

为此我们用自己的模型,成本全部拿捏👌。

欢迎体验: https://studio.metag-ai.com/podcasting/voice

1348 次点击
所在节点    分享创造
7 条回复
anUglyDog
12 天前
https://github.com/yimuc/Jarvis5 个月前我也做了个语音助手 demo ,
anUglyDog
12 天前
https://github.com/yimuc/Jarvis 5 个月前我也做了个语音助手 demo ,录音、语音转文字、AI 发送文本获取回复文本、语音播放文本。
swim2sun
12 天前
原理根本不是你说的那样,openai 的语音模型是端到端的,直接把语音编码发给大模型,不需要 stt
tcper
12 天前
@swim2sun 你能看到中文吗?
tcper
12 天前
@anUglyDog 很神奇,你用 nodejs 进行录音?那这样的话你的服务只能跑在单台电脑上了?
swim2sun
12 天前
@tcper ? 你能把话讲明白吗
xhawk
10 天前
vercel 上有个类似的项目,
语音流持续输入,如何判断用户的停顿?(因为语音流本质上持续有输入,就算静音也有数据)
# 如果是连续输入, 然后中间停顿了几秒, 就是代表用户说完了. 不过这个挺难判断的. 因为我发现人的说话, 有时候是有一个思考的时间的.

AI 返回的语音,如何让用户打断?
# 录音是实时在录的, 只要有录音的内容, 则停止播放 AI 返回的语音.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1093619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX