Ventuss

Ventuss xLog

走马敕勒川 | TG: @Ventuss_OvO
twitter
tg_channel

Flaneur 创造手记

环形时间 Flaneur.001.jpeg

TL; DR#

我们团队于 4 月 8 日 ~ 4 月 10 日参加了即刻公司举办的 Hack Engine 活动,本文描述了我们的项目 Flaneur 诞生的过程,她是一个使用人工智能生成音乐、声音和内容的网站,旨在让用户感觉像是与一个老朋友一起散步。作者还讨论了其他在 Hack Engine 活动中展示的项目,包括旅行规划和泛知识管理。

Hack Engine 是做什么的#

以下是 Hack Engine 的官方介绍:

Q: Hack Engine 和 Hackathon 有什么区别?
A: 没有区别。只是除了 Hackathon,我们也是孵化器、基金、alumni 创业者网络。
Q: 那不就是 Y Combinator 吗?
A: 是的。

简单来说,Hack Engine 组织了一个 AI 主题的 Hackathon 活动,一支队伍最多 5 人,需要在 48hr 内完成一个小产品的开发并进行演示。

我们团队也非常关注生成式 AI 的发展和应用,加上我自己是老即刻用户,很快便决定参加了。我们很好奇大家能把 AI 用成什么样子,也想认识一下熟悉的 ID 背后的真人。

IMG_3322.JPG

我们团队由 5 人构成:后端工程师 @ 晓,前端工程师 @ Edison,设计师 @ Brant,打杂的 @ Jason,另外从滑雪群里 (?) 抓来了算法工程师 @ York 作为外援。我们团队几乎没有参加 hackathon 的经验,所以出发前请教了一下 @Junyu。豌豆荚应该是国内最早办 hackathon 的公司,通常是 24 小时内开发一款小应用;我问到最深刻的事情,@Junyu 抬头看了看天 (调用云计算?),讲起有一年 hackathon 刚好碰上北京下特大暴雨,正好大家一起通宵,中间还考虑要不要出去救人。@Junyu 给了我三个锦囊妙计:最重要的是开发完,其次是有趣,再其次…… 没了。

因为题目是 kickoff 当天才会公布,我们并没有做太多其他准备。工程上,我们部署了一台可以运行 Stable Diffusion 的服务器,另外准备了两个不同账号的 OpenAI API,以防临时被封。另外结合 @Junyu 的锦囊妙计我们确定了选题的几个原则:

  1. 好玩有趣,足够小 / 垂直
  2. 两天能做出来
  3. 或者两天做不出来但是足够震撼(可以只放一个视频作为 demo? ((fake it till you make it

Copilot for ?#

周六上午 9:30,题目公布:Copilot for X。

Copilot for X,X = anything,所以就是什么都没说啊!为了避免思路过早收敛,我们决定先各自想想,再碰头讨论。我本来想趁此机会 social 一波,没想到其他队伍都在热火朝天地讨论甚至已经开始动手了,惊。等到我们该碰头讨论了,肚子已经饿了,还是先去填饱肚子吧。

IMG_3321.JPG

活动在五角场,我们都不熟,也不知道去哪里吃饭,干脆一边溜达一边讨论,于是灵感来了!

上海是一座非常适合散步的城市,我想起多年前有次在上海散步,大概是夏天的晚上,我一个人在衡山路溜达,吹着晚风,听着歌,十分惬意。当时听的歌是舒淇的 Tram ,来自 LV SoundWalk 系列中的香港专辑 (没错是香港)。LV 选了香港一些标志性的地点,请了当地的音乐家谱曲,请舒淇配音介绍,融入故事,非常好听。不过这个系列在国内只有北京、上海、香港三张专辑,一下就听完了。北京是巩俐配音,上海是陈冲配音,强烈推荐真的按照专辑里的地点顺序走一走,一边听歌。

Tram - 舒淇

整个系列里我最喜欢的还是这首 Tram,舒淇的声音实在太好听了!所以我想到,如果用 AI 生成类似的内容,还可以加上 AI 生成的背景音乐,应该挺不错的。

我们讨论了下,确实可行,想法也有了一些延伸:比如可以加上一些更有时效性的信息,如当时的天气、用户的运动状态、步频,这样哪怕在同样的地点打开,每次听到的内容也会不一样;可以多抓取一些信息来介绍附近的地标建筑。

我们梳理了需求,这个小产品大概会有以下特点:

  • 完全不需要操作,打开就能用
  • 根据当前的位置、天气、运动状态等信息,生成匹配步速的背景音乐
  • 用好听的女声向你介绍附近街区的历史、故事,就像有个真人在陪着你散步
  • 会预先生成所在街区和附近街区的内容,这样你可以一直散步,内容不会中断

2621096800_5eb560ffac_o.jpg

最终的效果是一个简配版的 LV SoundWalk。或者从另一个角度理解,LV SoundWalk 过于精英了,只有有限的几个地点。而事实上我们生活的每一寸土地都有自己的故事,每个地方都值得拥有自己的 SoundWalk,所以也可以理解为 SoundWalk 民主化。

周六下午两点完成构思和分工,开干!

Flaneur 的诞生#

@Junyu: 做产品的第一步,先买一个域名

首先,我们需要给这个产品起一个名字。

上海是一座非常洋气的城市。我刚来上海那天,从机场坐地铁到市区,走出地铁站看到有位衣着非常考究的少女,手里捧着一束花,用英文报纸包着。上海真洋气啊!我不禁感慨。走近一看,我发现我错了,不是英文报纸,是法文报纸。上海真是太洋气了!我不禁感慨。

由于是在上海散步给我的灵感,我们也是在上海开始创造这个小产品,那么一定得要一个洋气的名字才行!

于是我们给这个产品取名 Flaneur,法语中「漫游」的意思,特指「无所事事的漫游」。鉴于 Flaneur 没有任何交互功能,这个名字实在非常贴切。

Flaneur 的实现大概可以归纳为以下几个步骤:

  1. 获取用户的状态信息,如地理位置,运动状态
  2. 抓取该地理位置相关的信息,如当时的天气、维基百科介绍、POIs
  3. 用 GPT 生成一段描述,涵盖 #2 中的信息
  4. 将 #3 中生成的描述,用 TTS 转换成真人的发音(舒淇)
  5. 根据 #1 & #2 中的位置、天气、运动状态等,生成一段合适的 BGM;如果是散步则舒缓,如果用户在跑步则可以高亢一些
  6. 把 #4 & #5 合并音轨播放出来
  7. 为了方便演示,我们还是需要一个界面,可以滚动展示 #3 中的描述

工程上并没有太多难度,唯一遇到的问题是网页无法获取用户的运动状态,我们决定放弃这个信息。有趣的部分在于 AI 相关的实现,这部分过程也让我们很有启发。AI 部分可以分为:文本生成,文本转语音 (TTS),音乐生成三个部分。

LV SoundWalk 系列的念白都非常有味道,结合了当地的历史和特色,让 GPT 生成类似风格的文本就很关键。GPT 主要由我来调教。我以五角场为例,找了一些维基百科上的资料作为 prompt 给 GPT,让他扮演「伴游」来介绍五角场,但是这样生成的文本都非常「导游」。我想到可以加入一些更有「临场」的描述,如「你刚刚路过一扇古朴的门」,这样效果好了一些,可 GPT 还是忍不住说「欢迎来到五角场」或是「你好,老朋友」这样的话,而我认为好的效果是一个温柔的女声直接「闯」进你的耳朵,不用客套寒暄,直接开始和你对话(不然我会不好意思,毕竟是一个声音很好听的女声)。

后来我突然想到,让 GPT 扮演「向盲人朋友介绍附近街区」,这个设定下效果非常不错!但 GPT 总是忍不住在最后加上一句「尽管你看不见,但……」这样的安慰。同样思路下我调整了 prompt,于是最终 prompt 和效果是这样:
Snipaste_2023-04-13_17-18-32.png

TTS 是整个过程中最有挑战的部分!TTS 即语音转文字其实有很多成熟的方案了,比如经常在抖音上听到的「家人们,谁懂啊」和「注意看,这个男人叫小美」,但 Flaneur 显然不能用这么没有逼格的声音,不是舒淇也至少得是高圆圆吧!所以我们调研了一下定制化的 TTS,发现有两个方案:

  1. MockingBird:一个开源的模型,只需要几秒钟的源音频就可以生成任何文字的朗读,需要自己部署,演示效果尚可
  2. 11Labs:上传一段 10m 的音频文件就可以生成任何文字的朗读,效果非常惊艳!付费(看起来不贵)。缺点是只支持英文。

其他还有些国产厂商的声音定制方案,但是需要 15+ 工作日和十几万的费用。。。似乎他们用的都是很古早的技术,所以成本高企。

@ York 花了非常多的精力部署 MockingBird 模型并进行优化,但最终效果依然乏善可陈。我们研究了模型背后的技术,MockingBird 是基于上一代的 GAN 的,可能这是效果一般的原因。

@ York 苦逼调模型的同时我开始玩 11labs 了。我首先尝试了舒淇的声音 + 中文朗读,出来的效果像是刚考 HSK 的老外念中文。舒淇的声音 + 英文则少了点感觉,没有那么惊艳。那如果用大家熟悉的外国女星呢?我第一反应就想到了 Scarlet Johansson 和 HER 这部电影。

结果效果非常惊艳!虽然没能「拥有」舒淇,但我却意外收获了 Samantha,还要什么自行车!
peakpx.jpg

家人们谁懂啊!

音乐生成则是最平常的部分。很多年前就有根据步频生成对应 BPM 的 BGM 的软件了,没有太多想象力。加上时间有限,背景音乐我认为不花太多精力,因此决定用 AI 预先生成一堆不同 BGM 的音乐,demo 的时候播放现成的就可以了。

因为界面很简单,我们第一天就完成了界面的开发和接口适配;花时间最多应该的应该是 @晓 负责的后端和 @ York 负责的 TTS 部分,我们在第二天傍晚调通了所有接口;两天都是 12 点准时打开离开会场,很多团队还在肝。

IMG_3201.jpg

溜了溜了

在?看看效果#

下面请看我们的演示视频:

假装有视频

简单讲解一下:

  • 打开网页就能用,无需任何操作
  • 所有内容都是 AI 生成的,包括内容、音乐和 Samantha 性感的声音(音乐虽然是预先生成好的但也是 AI 生成的
  • 我们甚至植入了一段广告作为彩蛋(说不定真的可以商业化呢

体验地址:https://flaneur.polytimeapp.com/
文末阅读原文也可以打开,请在移动端打开

打开后需要点一些气泡中间开始播放,现在加载还是有些慢,生成的信息也有些单调,请给 Flaneur 一些耐心。

我们最早构思的时候,完全以 LV SoundWalk 为灵感。但当我真的用的时候,听到 Samantha 声音的介绍,我很想和她对话聊天!

我很喜欢散步,有时候是为了思考,有时候是和朋友一起。最舒服的状态其实是去一个陌生的街区,和「一个很熟悉的朋友」散步,我经常有些奇怪的联想和很冷的吐槽段子,陌生的环境会让我有更多灵感和线索,边散步边讲这些还有人回应就是最舒服的状态。

进一步地,如果加上调用手机的摄像头能力,用 CLIP 模型理解图像并把这个作为 prompt 的一部分给 GPT 生成内容,就真的可以让 Samantha 啊不对 Flaneur 看到你看见的东西,她真的就像一个陪你散步的老朋友,听你扯淡,陪着你走过一条又一条街道。就像电影 HER 里一样。Her 已经是整整十年前的电影了,Her 的取景地也恰好在上海。

有种梦想照进现实的感觉,wow

d4f73a2d-a00b-45ba-80cc-cf0ca0ed593a.jpeg

Demo Day!#

Demo Day 就是一百支队伍要在一天内展示自己的成果,非常炫酷!
每支队伍只有 5min 时间,超时会被无情打断,非常残酷!
迫不及待看到大家的作品,一库一库!

我们的展示被排在倒数第四个进行,到那个时候我其实已经很困了。。不过进行的很顺利,想讲的东西也讲出来了,所以并没有太多可写的。

我认真听了几乎所有项目,并给喜欢 / 有趣 / 印象深刻的项目做了笔记。还是不如前辈勤奋,@junyu 给每个项目都认真做了记录。因为主办方应该有些保密的考虑,所以我只写写抽象的感想吧。

看到了几个 AI 与科技向善的结合,非常喜欢。生成式 AI 的这波火爆让很多朋友担心自己未来会不会被 AI 取代(尤其是律师、程序员、投研这样的职业),恰好昨天和朋友聊起人类历史上的技术变革,其实每次都是对人本身的解放 —— 短期也许会有一些人受影响失业,但很快就会发现人们其实是被从「不那么人的工作中」解放出来去做「更适合人本身做的工作」。AI 可以帮营销号灌水,也可以帮视障群体更加无障碍地与世界交互。

有好多个项目是旅行规划为主题的。我们也考虑过这个主题,但发现可能面临的问题是我们没有数据可以用。航班的动态价格、酒店的房间报价、甚至地图路线,这些都是约束条件,而这些数据全都被 OTA 服务商掌握并有严格的反爬策略,所以很可能做出一个美丽的产品却没有任何数据可用。移动互联网时代以来,数据被大公司牢牢把控,并被困在一个个 app 孤岛中,用户也形成了「打车去滴滴」「视频去抖音」「活腻了去百度」这样的认知,然而他们本质上都是「信息」,而不是「视频 / 文字 / 语音 / 地图」或是「笔记 / 邮件 / 日程 / TODO」,很难说这不是「互联网的一段弯路」。

Hack Engine 最多团队做也是我最感兴趣的主题其实是「泛知识管理」。GPT 本身是一个语言模型,不具备逻辑推理能力,而人类的知识其实存在于各种逻辑关系中,「地球是圆的」这个命题不重要,「重力使得地球的物质向中心聚集,因此地球形成近似球体」这个命题是重要的,知识论将知识定义为 Justified True Belief,JTB,即知识需要同时满足以下三个条件:

  1. 某人相信某件事;
  2. 这个信念事实上是真的;
  3. 这个信念是有理由证明的。

三个条件缺一不可,举几个反例:重力使得地球的物质向中心聚集,因此地球变成了一个 Bagel(信念事实上是假的);因为地球内部有个仓鼠在跑轮子,所以地球是圆的(该信念的证明是错的)。

Snipaste_2023-04-13_17-40-06.png

GPT 全名 Generative Pre-Trained Transformer,本身是一个「大语言模型」,ChatGPT 的推出更像是一个临时的、用来抢占用户注意力和数据的举动,并不一定 GPT 最好的形态 / 应用就是「对话式的」,而现在大家都在做对话,我认为有点被 OpenAI 带沟里去了。另外刚才论述过,GPT 不具备逻辑推理能力,因此问 GPT 知识性的问题是不明智的,相信大家都看过 GPT 一本正经地胡说八道(所以 GPT 又名狗屁通)。

另一方面,我个人认为 GPT 非常适用于「限定信息下的」内容处理及生成,例如 Flaneur 的所有原始信息是由我们提供的;例如先帮我筛选一遍 Read it later 列表;例如生成文章的总结(文章开头的 TL;DR 就是 GPT 帮我写的);例如帮我自动建立知识库中的关联(其实只需要 embedding 就可以了);例如根据我写的碎片信息生成一篇新的文章等等……

我把这些称为「泛知识管理」,这个主题我非常有兴趣和热情,同样对这个主题感兴趣的朋友欢迎一起交流!

1476px-Pieter_Bruegel_the_Elder_-The_Tower_of_Babel(Vienna)_-_Google_Art_Project.jpg

共建人类巨灵

Ending#

整个 Hack Engine 非常紧凑,demo 按时甚至提前展示完,周一当天晚上就公布了结果。Flaneur 并没有入选,还是会感到一些遗憾的。不过这两天我们都非常享受过程本身,度过了一个难忘的周末;上海这几天天气也很好,天气预报本来有雨,*** 一来,天气晴朗!

上海好像总是给我类似的感受:有很美好的开始和过程,在结尾留下一些遗憾。

Anyway,非常感谢我的团队,额外感谢 @ York 同学从杭州跑来参加(我们居然忘记合影了 TAT)
IMG_3224.jpg

需要特别感谢一下主办方即刻团队,我们在现场有近乎完美的体验,没有遇到任何问题,完全不像是第一次办这样的活动。Hack Engine 在细节处也非常用心,例如参赛证是专门设计过的,这细节,啧啧。

IMG_3320.jpg比字节的工牌还高级,祝即刻公司早日收购字节跳动

虽然没有入选,Flaneur 还是受到了广泛的喜欢,好多朋友问我 Flaneur 会不会继续开发,这让我们非常开心。说实话我们也没想好,做一个 demo 和做一个真正的产品还是很不一样的,现有的技术能否达到我们预期的效果也需要继续调研,我们团队也面临一些困难很难腾出精力和资源再做一款新产品了。

Anyway, 如果你也喜欢 Flaneur,请不吝赞美告诉我们!

--
2023/04/13 @Shanghai

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.