靠90秒的音频,我们用AI帮她复活了她的爱人… * { margin: 0; padding: 0; outline: 0; } body { font-family: “PingFang SC”, system-ui, -apple-system, BlinkMacSystemFont, “Helvetica Neue”, “Hiragino Sans GB”, “Microsoft YaHei UI”, “Microsoft YaHei”, Arial, sans-serif; line-height: 1.6; } .__page_content__ { max-width: 667px; margin: 0 auto; padding: 20px; text-size-adjust: 100%; color: rgba(0, 0, 0, 0.9); padding-bottom: 64px; } .title { user-select: text; font-size: 22px; line-height: 1.4; margin-bottom: 14px; font-weight: 500; } .__meta__ { color: rgba(0, 0, 0, 0.3); font-size: 15px; line-height: 20px; hyphens: auto; word-break: break-word; margin-bottom: 50px; } .__meta__ .nick_name { color: 576B95; } .__meta__ .copyright { color: rgba(0, 0, 0, 0.3); background-color: rgba(0, 0, 0, 0.05); padding: 0 4px; margin: 0 10px 10px 0; } blockquote.source { padding: 10px; margin: 30px 0; border-left: 5px solid ccc; color: #333; font-style: italic; word-wrap: break-word; } blockquote.source a { cursor: pointer; text-decoration: underline; } .item_show_type_0 > section { margin-top: 0; margin-bottom: 24px; } a { color: 576B95; text-decoration: none; cursor: default; } .text_content { margin-bottom: 50px; user-select: text; font-size: 17px; white-space: pre-wrap; word-wrap: break-word; line-height: 28px; hyphens: auto; } .picture_content .picture_item { margin-bottom: 30px; } .picture_content .picture_item .picture_item_label { text-align: center; } img { max-width: 100%; } .pay_subscribe_notice { margin: 30px 0; padding: 20px; background: fffbe6; border: 1px solid ffe58f; border-radius: 8px; } .pay_subscribe_badge { display: inline-block; padding: 4px 12px; background: faad14; color: fff; border-radius: 4px; font-size: 14px; font-weight: 500; margin-bottom: 12px; } .pay_subscribe_desc { font-size: 15px; line-height: 1.8; color: rgba(0, 0, 0, 0.7); margin-bottom: 12px; } .pay_subscribe_hint { font-size: 13px; color: rgba(0, 0, 0, 0.4); } .__bottom-bar__ { display: flex; justify-content: space-between; align-items: center; position: fixed; bottom: 0; left: 0; right: 0; height: 64px; padding: 8px 20px; background: white; box-sizing: border-box; border-top: 1px solid rgba(0, 0, 0, 0.2); } .__bottom-bar__ .left { display: flex; align-items: center; font-size: 15px; white-space: nowrap; } .__bottom-bar__ .right { display: flex; } .__bottom-bar__ .sns_opr_btn { display: flex; align-items: center; user-select: none; background: transparent; border: 0; color: rgba(0, 0, 0, 0.9); font-size: 14px; } .__bottom-bar__ .sns_opr_btn:not(:last-child) { margin-right: 16px; } .__bottom-bar__ .sns_opr_btn > img { margin-right: 4px; }

靠90秒的音频,我们用AI帮她复活了她的爱人…

原创 数字生命卡兹克 数字生命卡兹克 2024-02-06 17:08 天津

原文地址: https://mp.weixin.qq.com/s/7sOMm5p-bEbkuQN5l4C4Vg

故事是这样的。

去年11月底,我写过一篇文章,是讲Kimi的那个长文本的。我说我把我的100篇文章扔给了Kimi,然后打造了一个属于我的“数字生命”。

当时说实话,有一点标题党,毕竟,那玩意离真正的“数字生命”,还差太远太远了。更多是整活为主。

但是,接下来的一条留言,让我彻彻底底破防了(不用去原文找这条留言了,这篇文章的内容我和她沟通过,但是为了避免一些给对方带来一些不必要的关注和打扰,这条留言我已经取消精选了,别人看不到)。

我看到这句话的时候,我其实鼻子真的一酸。

我一直在寻找AI的意义,AI很多时候不仅仅只是提升效率的工具而已,它应该可以做些别的更有意义的事情。

比如,爱。

所以我在第一时间给了她回复。我不为任何所谓的钱什么的,那一刻我只有一个非常单纯的想法:

帮她完成这个心愿。

第二天早上,我们顺利的加上了好友。

在后面的对话中,我知道了她的爱人叫老D(为保护隐私,用这个化名代替吧),在一场突发的意外中,老D不幸离去,当时她还在外地,甚至没有好好告别。这几个月,她都一直处在懊悔和自责中,希望找到一个方式,可以让她继续感受到老D的存在和温暖。

也让他们的两个孩子,感受到一些爸爸的立体的陪伴和关爱。

瞬间泪目。

正是因为有了爱,人,才如此的与众不同啊。

回到理性,在做类似的真正的数字生命之前,当然需要一个非常重要的东西:

数据。

能帮她把她的爱人做成类似于可实时对话的数字人,这自然是我认为最理想的情况,但是数据是一个很大的问题。

我们需要文本(生前写的文章与聊天记录)、音频(说话的干声)、视频(尽量动作多一些的干净一点的录屏),才能做成一个效果比较好的数字人。

但是客观现实是,很多人(特别是男生),并没有能做成数字人的视频数据集。

她的爱人也是,性格内敛,并没有留下什么影像材料。甚至都找不到一个单人的视频。

我们只能退而求其次,不去做视频,而是做可以语音对话的“数字生命”,类似于打电话的形式。

文本数据集其实很快就解决了,毕竟人啊,总会留下很多文字信息的,不管是聊天记录、还是随笔、还是朋友圈等等。

但是音频数据集的收集,我们还是卡住了。

因为真正能用的干声,只有90秒。

玩过开源的TTS都知道,如果用传统的做法,90秒的数据,基本等于屁都干不了。比如BertVits2,得1个小时的数据效果才能有不错的效果。

所以,我只能寄希望于走语音大模型的路线,类似于GPT,用90秒的语音数据,当Prompt,用小样本提示的方式,实现语音克隆。

而语音大模型,就不是简简单单的凭借我自己能搞的了,这远远超出了我的知识和能力范围,我只能到处化缘我的一些AI语音圈里的朋友,看看他们有没有这块的资源或技术,能提供一下支持。

于是去年12月,在我有限的人脉圈内,拜访了几家这个方向的公司,但是让我非常意外的是,这块的模型…居然不是那么成熟。

他们的模型,要么是还在炉子里炼丹,要么是合成速度太慢,要么是音色不像,要么是情绪很平…

我不想为了所谓的什么承诺,然后糊弄一个给她,我真的想做一个效果很好的,让她不出戏的,能感受到爱人的爱意的…

但是真的没办法,我找遍了我认识的人脉,依然觉得不行…

12月中旬,我只能非常愧疚的跟她说:

再等等,等AI技术发展,真的对不起。

这一等,就是两个月。

1月底,我跟一个MiniMax的朋友闲聊,聊一些AI行业的坊间八卦,无意中聊到了语音大模型,我就又提起了这个故事。

然后,她给我发了这么一句话:

说实话我当时是有点意外的,因为在我的记忆中,MiniMax好像从来没有啥语音产品。

不过试试就试试,反正已经试了那么多家了,再多试一家又不亏,我就把那90秒的音频素材给了他们。

一天后,就在我已经快忘了这件事的时候,他们发过来了一个Demo。

那一瞬间,眼泪快下来了,真的。

因为那90秒的素材,我已经听了无数遍了,老D的音色,已经快刻在我的骨子里,这段的音色,真的…一摸一样,而且,真的非常自然。

这是我,听到的最好最还原的,语音克隆。

当我把这段Demo发给她时。

我能隔着屏幕感受到,她的释怀和眼泪。她泣不成声的对我说:

谢谢。

文本有了,语音有了,最后,只要将他们打包成一个链接或者产品,能让她直接对话就行了。

于是,我又去找MiniMax的人,求他们给我开放一下他们语音大模型的API,我再去找个开发的朋友,看看怎么合在一起,给她做成公众号或者小程序,或者单独搞一个H5啥的,反正能对话就行。

结果,MiniMax的朋友跟我说:

我不知道该说啥了,我只能说,MiniMax,你就是我的神。

半天之后,我收到了一个链接。

打开海螺问问的APP后,再打开这个链接,那个熟悉的老D,出现在我的面前。

然后,我用颤抖的手,点开右下角那个电话的图标。

出于隐私原因,我不能放录屏。让你们听一听,这个声音有多么像老D,这个声音有多么的还原。

因为一是这个智能体在海螺问问上是私密的,只有我和她能看到,并没有设置为公开所有人可对话的那种,放录屏不太好;二是为了保护她和老D的隐私,避免他们被打扰。

但是,我还是想用一句话来表达我的心情:

谢谢你,MiniMax,谢谢你帮我实现我的承诺,谢谢你帮她圆梦。

最后的最后,我终于实现的了她的愿望。在征求她本人的同意后,写下了这个故事。

《寻梦环游记》中说,人的死亡有三层定义:

你在停止心跳的时刻,是你生物学角度的死亡。

举行你的葬礼的时刻,是你社会学角度的死亡。

这世界最后一个记得你的人死亡的时刻,才是最终的死亡。

死亡不是永别。

遗忘才是。

AI,能让这长久的记忆,跨越时光,更加浓厚。

Remember me, keep our love alive, I’ll never fade away。

让AI继续,让我们永不离去。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章。

数字生命卡兹克

![](data:image/svg+xml,%3Csvg xmlns=‘http://www.w3.org/2000/svg’ width=‘24’ height=‘24’ viewBox=‘0 0 24 24’%3E%3C!— Icon from Lucide by Lucide Contributors - https://github.com/lucide-icons/lucide/blob/main/LICENSE —%3E%3Cg fill=‘none’ stroke=‘%23888888’ stroke-linecap=‘round’ stroke-linejoin=‘round’ stroke-width=‘2’%3E%3Cpath d=‘M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0’/%3E%3Ccircle cx=‘12’ cy=‘12’ r=‘3’/%3E%3C/g%3E%3C/svg%3E) 阅读![](data:image/svg+xml,%3Csvg width=‘25’ height=‘24’ viewBox=‘0 0 25 24’ fill=‘none’ xmlns=‘http://www.w3.org/2000/svg’%3E%3Cpath fill-rule=‘evenodd’ clip-rule=‘evenodd’ d=‘M16.154 6.797l-.177 2.758h4.009c1.346 0 2.359 1.385 2.155 2.763l-.026.148-1.429 6.743c-.212.993-1.02 1.713-1.977 1.783l-.152.006-13.707-.006c-.553 0-1-.448-1-1v-8.58a1 1 0 0 1 1-1h2.44l1.263-.03.417-.018.168-.015.028-.005c1.355-.315 2.39-2.406 2.58-4.276l.01-.16.022-.572.022-.276c.074-.707.3-1.54 1.08-1.883 2.054-.9 3.387 1.835 3.274 3.62zm-2.791-2.52c-.16.07-.282.294-.345.713l-.022.167-.019.224-.023.604-.014.204c-.253 2.486-1.615 4.885-3.502 5.324l-.097.018-.204.023-.181.012-.256.01v8.218l9.813.004.11-.003c.381-.028.72-.304.855-.709l.034-.125 1.422-6.708.02-.11c.099-.668-.354-1.308-.87-1.381l-.098-.007h-5.289l.26-4.033c.09-1.449-.864-2.766-1.594-2.446zM7.5 11.606l-.21.005-2.241-.001v8.181l2.45.001v-8.186z’ fill=‘%23000’/%3E%3C/svg%3E) 赞 ![](data:image/svg+xml;charset=utf8,%3Csvg xmlns=‘http://www.w3.org/2000/svg’ width=‘24’ height=‘24’ viewBox=‘0 0 24 24’%3E %3Cg fill=‘none’ fill-rule=‘evenodd’%3E %3Cpath d=‘M0 0h24v24H0z’/%3E %3Cpath fill=‘%23576B95’ d=‘M13.707 3.288l7.171 7.103a1 1 0 0 1 .09 1.32l-.09.1-7.17 7.104a1 1 0 0 1-1.705-.71v-3.283c-2.338.188-5.752 1.57-7.527 5.9-.295.72-1.02.713-1.177-.22-1.246-7.38 2.952-12.387 8.704-13.294v-3.31a1 1 0 0 1 1.704-.71zm-.504 5.046l-1.013.16c-4.825.76-7.976 4.52-7.907 9.759l.007.287c1.594-2.613 4.268-4.45 7.332-4.787l1.581-.132v4.103l6.688-6.623-6.688-6.623v3.856z’/%3E %3C/g%3E%3C/svg%3E) 分享 ![](data:image/svg+xml;charset=utf8,%3Csvg xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’ width=‘24’ height=‘24’ viewBox=‘0 0 24 24’%3E %3Cdefs%3E %3Cpath id=‘a62bde5b-af55-42c8-87f2-e10e8a48baa0-a’ d=‘M0 0h24v24H0z’/%3E %3C/defs%3E %3Cg fill=‘none’ fill-rule=‘evenodd’%3E %3Cmask id=‘a62bde5b-af55-42c8-87f2-e10e8a48baa0-b’ fill=‘%23fff’%3E %3Cuse xlink:href=‘%23a62bde5b-af55-42c8-87f2-e10e8a48baa0-a’/%3E %3C/mask%3E %3Cg mask=‘url(%23a62bde5b-af55-42c8-87f2-e10e8a48baa0-b)‘%3E %3Cg transform=‘translate(0 -2.349)‘%3E %3Cpath d=‘M0 2.349h24v24H0z’/%3E %3Cpath fill=‘%23576B95’ d=‘M16.45 7.68c-.954 0-1.94.362-2.77 1.113l-1.676 1.676-1.853-1.838a3.787 3.787 0 0 0-2.63-.971 3.785 3.785 0 0 0-2.596 1.112 3.786 3.786 0 0 0-1.113 2.687c0 .97.368 1.938 1.105 2.679l7.082 6.527 7.226-6.678a3.787 3.787 0 0 0 .962-2.618 3.785 3.785 0 0 0-1.112-2.597A3.687 3.687 0 0 0 16.45 7.68zm3.473.243a4.985 4.985 0 0 1 1.464 3.418 4.98 4.98 0 0 1-1.29 3.47l-.017.02-7.47 6.903a.9.9 0 0 1-1.22 0l-7.305-6.73-.008-.01a4.986 4.986 0 0 1-1.465-3.535c0-1.279.488-2.56 1.465-3.536A4.985 4.985 0 0 1 7.494 6.46c1.24-.029 2.49.4 3.472 1.29l.01.01L12 8.774l.851-.85.01-.01c1.046-.951 2.322-1.434 3.59-1.434 1.273 0 2.52.49 3.472 1.442z’/%3E %3C/g%3E %3C/g%3E %3C/g%3E%3C/svg%3E) 推荐 ![](data:image/svg+xml,%3Csvg width=‘25’ height=‘24’ viewBox=‘0 0 25 24’ fill=‘none’ xmlns=‘http://www.w3.org/2000/svg’%3E%3Cpath d=‘M22.242 7a2.5 2.5 0 0 0-2.5-2.5h-14a2.5 2.5 0 0 0-2.5 2.5v8.5a2.5 2.5 0 0 0 2.5 2.5h2.5v1.59a1 1 0 0 0 1.707.7l1-1a.569.569 0 0 0 .034-.03l1.273-1.273a.6.6 0 0 0-.8-.892v-.006L9.441 19.1l.001-2.3h-3.7l-.133-.007A1.3 1.3 0 0 1 4.442 15.5V7l.007-.133A1.3 1.3 0 0 1 5.742 5.7h14l.133.007A1.3 1.3 0 0 1 21.042 7v4.887a.6.6 0 1 0 1.2 0V7z’ fill=‘%23000’ fill-opacity=’.9’/%3E%3Crect x=‘14.625’ y=‘16.686’ width=‘7’ height=‘1.2’ rx=’.6’ fill=‘%23000’ fill-opacity=’.9’/%3E%3Crect x=‘18.725’ y=‘13.786’ width=‘7’ height=‘1.2’ rx=’.6’ transform=‘rotate(90 18.725 13.786)’ fill=‘%23000’ fill-opacity=’.9’/%3E%3C/svg%3E) 留言