如何打造我们的语言能力:Little Language Lessons 利用 Gemini 的多语言功能实现个性化的语言学习

2025年4月29日

作为一名工程师,我一直对语言很感兴趣——无论是用来编写代码的语言,还是用来说话的语言。学习一门新的编程语言通常从构建一些切实可行的东西开始,然后立即将其理论付诸实践。另一方面,学习一门新的自然语言往往是在抽象的环境中进行的——通过那些感觉与语言真正起作用的实际情境严重脱节的教科书或练习题来学习。与编程一样,语言的学习最好通过有意义的情境进行:我们进行的对话、我们周围的物体、我们所处的时间。与传统的学习工具不同,人工智能可以适应学习者的环境,这使得它非常适合帮助我们以更自然、更个性化的方式练习语言。

因此,我和一个小组的同事开始尝试使用 Gemini API,这个 API 让开发者能够访问 Google 最新的生成模型。我们做出了一套“小小语言课”,即 Little Language Lessons:课程由三个简短的学习实验组成,全部由 Google 的 Gemini 模型提供支持。


实验 1,Tiny Lesson (小课堂):随时学习你所需的内容

语言学习中,有一种最令人挫败的情况,就是发现自己需要某个特定的单词或短语,而您正好还没有学过。

这正是 Tiny Lesson 的设计动机。您只需描述一个场景——比如“问路”或“找到丢失的护照”——然后就能获得根据该场景定制的实用词汇、短语和语法技巧。

我们用一个简单的提示场景实现了这一点。提示以角色设定的序言开头,如下所示:

您是{target language}一名能够熟练掌握 {target language}和
 
{source language} 双语的老师,并且是制定教育内容的专家,
可根据学生的语言使用目标进行定制。
Markdown

在这个提示以及接下来的所有提示中,我们利用了 Gemini 提供以结构化 JSON 形式输出的功能,将所需结果定义为对象中的键列表:

对于给定的使用上下文,提供一个包含两个键的 JSON 对象:
“vocabulary”和“phrases”。
 
“vocabulary”的值应该是一个对象数组,每个对象包含三个
键:“term”、“transliteration”和“translation”。
 
“term”的值应该是{target language}与给定上下文高度相关
且有用的单词。
如果感兴趣的语言通常用拉丁字母书写,则
“transliteration”的值应该为空字符串。否则,
“transliteration”的值应该是该术语的音译。
“translation”的值应该是{source language}该术语的
翻译。
 
...
Markdown

总的来说,每节课都是对 Gemini API 两次调用的结果。一次提示负责生成所有词汇和短语,另一次则负责生成相关的语法主题。

在每个提示的末尾,我们插入用户期望的使用上下文,如下所示:

输入(使用场景):{user input}
Markdown

实验二,Slang Hang (俚语练习):学习听起来不那么像教科书

在语言学习的的某一阶段,您会感觉自己渐入佳境。您可以进行对话,表达自己,而且基本上能应对自如。但随后您意识到,您说话的语气……还是不太对劲。太正式了,太僵化了。

我们开发了 Slang Hang 来帮助解决这个问题。它的理念很简单:生成母语人士之间的真实对话,让用户从中学习。您可以观看对话的展开,每次揭示一条信息,并随时解读不熟悉的术语。

Slang Hang 提示的序言如下所示:

您是一位精通 {source language} 和 
{target language} 双语的编剧,也是一位创作精彩对白的专家。
你还是一位语言学家,能将文化的细微差异展现在演讲当中。
Markdown

虽然用户每次只能显示一条消息,但所有内容(包括设置、对话以及突出显示术语的解释)都只需调用一次 Gemini API 即可生成。我们将 JSON 输出的结构定义如下:

生成一个简短的场景,其中包含两位对话者在用地道的 
 语言交谈
{target language}。将结果作为 JSON 对象提供,该对象包含两个键:
“context”和“dialogue”。
 
“context”的值应为一小段 {SOURCE LANGUAGE} 
 文字,用于描述场景设置、正在发生的事情、说话者是谁以及说话者之间的关系。
 
“dialogue”的值应为一个对象数组,其中每个对象
包含有关单次对话的信息。
“dialogue”数组中的每个对象应包含四个键:“speaker”、“gender”、“message”、
和 “notes”。
 
...
Markdown

对话以用户的目标语言生成,但用户也可以将消息翻译成他们的母语(该功能由 Cloud Translation API 提供支持)。

这个实验最有趣的一点是它采用了“突发性叙事”的元素。每个场景都是独一无二的,并且是即兴创作的——可能是街头小贩和顾客的聊天,可能是两位同事在地铁上相遇,甚至是一对久违的朋友在珍奇宠物展上意外重逢。

即便如此,我们发现这项实验仍在一定程度上容易出现准确性的错误:它偶尔会误用某些表达方式和俚语,甚至会杜撰。大语言模型(LLM)仍然不够完美,因此,与可靠来源进行交叉引用非常重要。


实验 3,Word Cam(词汇相机):从周围环境中学习

有时候,您正好需要用语言来形容眼前的事物。当您意识到自己有很多东西不能用目标语言来表达时,可能会感到很难堪。您知道“窗户”这个词,但“窗台”又该怎么说呢?或者“百叶窗”又该怎么说呢?

Word Cam 将您的相机变成即时词汇助手。只需拍摄一张照片,Gemini 就会识别物体,用您的目标语言进行标注,并为您提供一些可以用来描述该物体的词汇。

本次实验利用 Gemini 的视觉功能进行物体检测。我们向模型发送一张图片,并要求其提供图片中不同物体的边界框坐标

为给定图像中存在的对象的提供见解。
将结果作为包含名为“objects”的单个键的 JSON 对象给出。
 
“objects”的值应为一个对象数组,其长度不超过图像中存在的不同对象的数量。
数组中的每个对象都应包含四个键:“name”、“transliteration”、“translation”和
“coordinates”。。
 
...
 
“coordinates”的值应为一个整数数组,表示
对象边界框的坐标。将坐标指定为 [ymin, 
xmin, ymax, xmax]。
Markdown

一旦用户选择一个对象,我们就会将裁剪后的图像以单独的提示发送给 Gemini,并要求它以用户的目标语言生成该对象的描述符:

对于给定图像中表示的对象,请提供描述该对象的描述符 
。将结果作为 JSON 对象提供,该对象包含 
 一个名为“descriptors”的键。
 
“descriptors”的值应为对象数组,其中每个 
 对象包含五个键:“descriptor”、“transliteration”、“translation”、“
exampleSentence”、“exampleSentenceTransliteration”和 
“exampleSentenceTranslation”。
 
...
Markdown

在这三个实验中,我们还集成了文本转语音功能,让用户可以听到目标语言的发音。我们使用了 Cloud Text-to-Speech API 来实现这一点,该 API 为常用语言提供了自然的语音,但对于不太常用的语言,其语音选项有限。由于地方口音并没有完全展现出来,用户选择的方言与播放的方言有时会不一致。


未来计划

虽然 Little Language Lessons 还处于早期探索阶段,但这类实验预示着未来可能会有激动人心成果。这项研究也提出了一些重要的问题:同语言学家和教育工作者合作,改进我们在 Little Language Lessons 中研究的方法,会产生怎样的结果呢?更广泛地说,人工智能如何能让自主学习更具活力和个性化?

目前,我们仍在继续探索、迭代和提出问题。如果您想了解更多类似的实验,请访问 labs.google.com