一、项目背景

在出境旅游就餐场景中,语言障碍是用户面临的主要痛点之一。虽然我们的App已经支持菜单拍照识别、AI智能问答、点餐表达生成等功能,但在某些紧急场景下——比如急需买单、找洗手间、或者想简单表达一个需求时,用户往往没有时间打开复杂的翻译页面。

“急救音频口袋书” 正是为解决这一场景痛点而设计:提供10句最常用的境外用餐口语,支持中、英、日、韩四国语言一键发音,并配有超大字体音标,帮助用户在关键时刻快速沟通。

二、功能设计

2.1 Top 10 常用语选择

经过对出境旅游场景的分析,我们筛选了以下10句高频口语:

序号 场景 中文
1 结账 买单
2 问路 洗手间在哪里?
3 打包 可以打包吗?
4 跟单 点和隔壁桌一样的
5 推荐 可以推荐一下招牌菜吗?
6 辣度 可以做得不辣吗?
7 忌口 不要放糖
8 饮水 请给我一杯水
9 餐具 可以给我叉子吗?
10 礼貌 谢谢

2.2 多语言支持

语言 代码 说明
中文 zh 母语理解
English en 最通用的国际语言
日本語 ja 日本旅游场景
한국어 ko 韩国旅游场景

2.3 核心功能点

  1. 一键切换语言:点击语言标签,整页内容自动切换

  2. 点击播放语音:每条常用语右侧配有喇叭图标,点击即播放标准发音

  3. 大字版音标:每条常用语下方配有超大字体音标,方便用户跟读

  4. 双语释义:同时显示中文翻译,帮助理解

三、技术实现

3.1 后端API设计

在 main.py 中新增两个端点:

# 获取常用语列表
@app.get("/phrase-book")
async def get_phrase_book(target_language: str = Query("en")):
    phrases = PHRASE_BOOK.get(target_language, PHRASE_BOOK["en"])
    guides = PRONUNCIATION_GUIDES.get(target_language, PRONUNCIATION_GUIDES["en"])
    # 返回结构化的常用语数据
    ...

# 播放单句语音
@app.post("/phrase-book/speak")
async def speak_phrase(request: dict):
    phrase = request.get("phrase", "")
    target_language = request.get("target_language", "en")
    result = generate_speech(phrase, tts_lang)
    return {"success": result["success"], "audio_base64": result["audio_base64"]}

3.2 数据字典设计

在 speech_service.py 中维护常用语库和音标库:

PHRASE_BOOK = {
    "zh": {"check": "买单", "restroom": "洗手间在哪里?", ...},
    "en": {"check": "Check, please.", "restroom": "Where is the restroom?", ...},
    "ja": {"check": "お会計をお願いします。", ...},
    "ko": {"check": "계산해 주세요.", ...}
}

PRONUNCIATION_GUIDES = {
    "en": {"check": "tʃek", "restroom": "rest-room", ...},
    "ja": {"check": "o-kai-kee-o o-ne-gai-shi-ma-su", ...},
    "ko": {"check": "gye-san-hae ju-se-yo", ...}
}

3.3 前端实现(Flutter)

数据模型
class PhraseItem {
  final String id;           // 唯一标识
  final String text;         // 原文
  final String pronunciation;// 音标
  final String translationZh;// 中文释义
  final String translationEn;// 英文释义
}
UI组件设计
  • 语言切换栏:四个语言标签,选中高亮显示

  • 常用语卡片:每条常用语独立卡片,包含原文、播放按钮、音标、中文释义

  • 播放状态管理:播放时显示加载动画,防止重复点击

3.4 集成到工具箱

将“急救口袋书”作为工具箱的第三个Tab页,与汇率计算、单位换算并列:

text

工具箱
├── 汇率计算 (Tab 1)
├── 单位换算 (Tab 2)
└── 急救口袋书 (Tab 3) ← 新增

四、效果展示

4.1 界面截图说明

区域 内容
顶部 语言切换栏(中文/English/日本語/한국어)
卡片区 10句常用语,每句独立卡片
卡片内容 原文 + 播放按钮 + 大字音标 + 中文释义

4.2 使用流程

  1. 打开App → 点击底部“工具箱”

  2. 切换到“急救口袋书”Tab

  3. 选择目标语言(如日语)

  4. 点击某条常用语右侧的喇叭图标 → 自动播放标准发音

  5. 查看大字音标,自行跟读

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐