林文威

← 全部作品

比赛与黑客松

Hearing the World 听见世界

拿起手机拍一张周围,它把照片编成一个有颜色、有情节的小故事,念给看不见的人听:一双新的眼睛,用语言和声音听见世界。

时间
2023.01 – 2023.04
场合
微软学生大使 Social Impact Project(Healthcare)
我做的
产品设计:点子、用户故事、功能和介绍文案
团队
Deepthi Balasubramanian(组长)、Sijan Neupane(安卓)、Mritul Senthilkumar(后端)和我
成果
当季冠军
技术
Azure AI 服务 · Azure OpenAI · Azure 虚拟机 · Kotlin · Python

看不见的人,靠触觉、听觉、嗅觉和味觉认识世界。Hearing the World 想做的是:拿起手机拍一张周围,App 认出照片里有什么,再把它讲成一个有颜色、有情节的小故事,念给你听。

这是我做微软学生大使时的一个季度项目。四个人,三个月,从定题到 Demo Day,最后拿了那一季的冠军。

点子从哪来

2023 年初,我在一个读书笔记训练营里读《包法利夫人》。听说福楼拜是从一篇简短的新闻报道写出这部小说的:添上细节,用语言让你身临其境。我就想,能不能也从一张照片写出一个故事?

大模型最擅长的正是语言。照片里的东西可以先被机器认出来,再交给大模型用讲故事的方式说出来,给看不见的人当“一双新的眼睛”。当时我给项目写的介绍是:

叙事的力量是伟大的。小说家用故事和叙事创造出小说;史学家用史料和叙事写出史书;哲学家用思想和叙事写出哲学。叙事(语言文字)的力量或许能帮助视力障碍的人感受周围的世界,因此我们小组设计了 Hearing The World 这个 app,以故事的形式向用户描述照片。

四个人,不在一个国家

学生大使项目每季开一轮 Social Impact Project,按主题分组。我们这组是 Healthcare 方向的原型冲刺(Prototype Sprint),在 Teams 上的频道叫 “Team-3”。我和组员不在一个国家,开会按印度时间约。

时间 发生了什么
1 月 25 日 建群。组员互相打招呼,有人问组长:“what are we building this time?”
1 月 26 日 第一次会,邀请是我发的。同一天我在学生大使项目里升到了 Gold,组长在群里祝贺我
2 月 4 日 头脑风暴
2 月 12 日 定题会
2 月 18 日 组长发话:“We must start building today”
3 月中 后端接口通了:传一张照片,返回一段故事;安卓 App 打出了安装包
3 月 28 日 Demo Day
4 月 26 日 项目组在社区公告里宣布冠军

为谁做

Demo Day 上,我们把视障者的难处写成两条:没有别人帮忙,很难弄清周围有什么;想知道身边的物件和正在发生的事,总得找人问。

当时的故事板把用户想成一个叫 Dan 的盲人:

故事板:Dan 想知道周围有什么,打开 App 拍一张,App 处理几秒后讲一个故事,Dan 听着故事在脑子里想象周围

  1. Dan 想知道周围是什么样子;
  2. 他打开 App,拍了一张;
  3. App 花几秒钟处理照片;
  4. 处理完,App 开始讲:“Hi, Dan. This is the world around you……”
  5. Dan 听着故事,在脑子里把周围想象出来。

想让它做到什么

我们把目标写成一句话:让视障者用一次触屏,理解和探索周围的世界。展开是三件事:

  • 认出周围:拍到什么、在哪里,先说清楚;
  • 让人安心:告诉用户周围是安全的;
  • 好听:不是干巴巴地报一串物体名称,而是像故事一样讲出来。

第三点是这个项目跟一般“识图念出来”的工具最不一样的地方,也是我最想做的部分。

怎么做的

架构草图:手机拍照发给服务器,服务器用 Azure 认知服务认出照片里的物体,比如 dog、yellow、sun,再把这些词交给 OpenAI 写成故事,发回手机

  1. 手机拍一张照片,发到服务器;
  2. 服务器调用 Azure 认知服务,认出照片里的东西:“dog”“yellow”“sun”……
  3. 把这些词交给 OpenAI,写成一段关于这张照片的故事;
  4. 故事发回手机,念给用户听。

安卓端用 Kotlin 写,后端用 Python,部署在 Azure 的虚拟机上。

我做了什么

  • 出点子,和组员一起把它定下来;
  • 写用户故事,想功能。做到一半时,Sijan 在群里对我说:“How about thinking of more features and writing market research? go for it!”
  • 写项目的介绍文案(就是上面引的那段);
  • 前几次会是我约的。安卓和后端是 Sijan 和 Mritul 写的,我在产品这一侧。

Demo Day

每组只有 3 到 5 分钟。Mritul 在群里问:“So we can never show a complete project? :(”

App 当时也还不稳定,“does not work all the time”。组长让大家录一小段演示,最后放的就是录好的视频。

4 月 26 日,项目组在 Teams 社区的公告里宣布 Hearing the World 是这一季的冠军,二十多个人在下面回复祝贺:“Congratulations Team Hearing the World!🎉”

之后

拿完冠军,组里还想接着做,报微软创新杯(Imagine Cup)。Sijan 跟我说:“Actually it needs 3-6 months to make a good imagine cup project.”到 2023 年底我们还在约时间讨论新点子,后来没有做成。

那年年底,我提名组长 Deepthi 升 Gold。2024 年 2 月她告诉我升上了,谢谢我一直支持她。我们组四个人,后来有三个升到了 Gold。组员之间一直互相帮忙,我觉得他们都好厉害。

回头看

后来我又想过下一步:先天失明和后天失明的人,需要的描述不一样。先天失明的人可能更习惯触觉的语言;后天失明的,可以按他失明时的年龄调整讲法。

我记得当时很开心。