软件设计
一、数据库表结构设计(含字段说明)
- 用户信息表(user_info)
字段名 数据类型 约束 说明
user_id INT 主键,自增 用户唯一标识
username VARCHAR(50) 非空 用户姓名
contact VARCHAR(20) 非空 联系方式(手机号)
gender TINYINT 可选(0/1) 性别(0 = 女,1 = 男)
birthdate DATE 可选 出生日期(用于个性化语音)
create_time DATETIME 非空,默认 CURRENT_TIMESTAMP 用户注册时间
last_login DATETIME 可选 最后登录时间
扩展说明:
新增 gender 和 birthdate 字段,用于语音交互时自动匹配 “先生 / 女士” 称呼及节日问候,提升个性化体验。
last_login 可用于分析用户活跃度,优化系统推送策略。
2. 地理信息表(geo_info)
字段名 数据类型 约束 说明
geo_id INT 主键,自增 地理信息唯一标识
name VARCHAR(100) 非空 地点名称(如 “人民公园东门”)
type VARCHAR(20) 非空 类型(道路 / 建筑物 / 公交站 / 盲道等)
longitude DECIMAL(10,6) 非空 经度坐标
latitude DECIMAL(10,6) 非空 纬度坐标
attributes TEXT 可选 扩展属性(如盲道宽度、公交站座椅数量)
update_time DATETIME 非空,默认 CURRENT_TIMESTAMP 数据更新时间
扩展说明:
attributes 字段存储结构化 JSON 数据(如 {"盲道状态": "完好", "公交站编号": "A001"}),便于灵活扩展地理信息细节。
对 longitude 和 latitude 字段建立空间索引(如 MySQL 的 SPATIAL 索引),加速路径规划时的地理查询。
3. 导航记录表(nav_record)
字段名 数据类型 约束 说明
record_id INT 主键,自增 导航记录唯一标识
user_id INT 外键,非空 关联用户 ID
start_geo_id INT 外键,非空 起点地理 ID
end_geo_id INT 外键,非空 终点地理 ID
start_time DATETIME 非空 导航开始时间
end_time DATETIME 可选 导航结束时间(未完成则为空)
duration INT 可选 导航时长(秒)
distance DECIMAL(10,2) 可选 导航总距离(米)
扩展说明:
duration 和 distance 可通过路径规划 API 自动计算填充,用于用户行程分析(如高频路线、平均耗时)。
建立组合索引 (user_id, start_time),方便快速查询用户历史导航记录。
4. 紧急联系人表(emergency_contact)
字段名 数据类型 约束 说明
contact_id INT 主键,自增 联系人唯一标识
user_id INT 外键,非空 关联用户 ID
name VARCHAR(50) 非空 联系人姓名
relation VARCHAR(20) 非空 关系(如父亲、朋友)
phone VARCHAR(20) 非空 联系电话
is_primary TINYINT 非空,默认 0 是否为首选联系人(1 = 是)
扩展说明:
is_primary 字段用于紧急求助时优先拨打首选联系人,支持多联系人轮询呼叫(如首选未接通则拨打下一个)。
与用户表通过 user_id 建立一对多关系,允许每个用户存储多个紧急联系人。
5. 语音设置表(voice_settings)
字段名 数据类型 约束 说明
setting_id INT 主键,自增 设置唯一标识
user_id INT 外键,非空 关联用户 ID
voice_type VARCHAR(20) 非空 语音类型(如普通话、方言)
volume TINYINT 非空(0-100) 音量百分比
speed FLOAT 非空(0.5-2.0) 语速倍数(默认 1.0)
is_mute TINYINT 非空,默认 0 是否静音(1 = 是)
扩展说明:
voice_type 可枚举值为 ["普通话", "粤语", "英语"] 等,支持动态扩展语音包。
新增 is_mute 字段,方便用户在需要时临时关闭语音(如安静场合),通过震动反馈替代提示。
二、用户界面优化设计方案
(一)交互流程简化
首页布局(语音 + 触觉反馈)
快捷功能键:
屏幕底部固定 3 个触摸区域(震动反馈确认):
左侧:长按启动紧急求助(语音提示:“已触发紧急呼叫,正在联系首选联系人”)。
中间:单击打开导航输入界面(语音提示:“请说出目的地,或触摸搜索按钮”)。
右侧:滑动切换系统设置(语音提示:“当前为设置界面,双击进入音量调节”)。
语音引导:用户开机后自动播报:“欢迎使用无障碍导航,当前时间 XX 点 XX 分,如需帮助请长按左侧按钮。”
导航输入界面
语音识别优先:用户直接说出目的地(如 “我要去人民医院”),系统自动解析地址并规划路线。
触摸备选方案:通过虚拟键盘滑动输入(字母 / 数字震动反馈),或调用手机通讯录选择常用地点(语音播报联系人地址)。
导航过程反馈
语音规则:
每 50 米播报剩余距离和方向(如 “前方直行 200 米,即将到达路口”)。
接近复杂路口(如三岔路)时,提前 100 米增强语音提示频率,并伴随连续震动。
触觉地图:屏幕模拟地形震动(如颠簸路面高频震动,平缓路面低频震动),辅助用户感知路况。
(二)紧急求助功能强化
多模态报警:
触发紧急求助后,系统自动拨打首选联系人电话,同时发送含实时位置的短信(如 “我在 XX 路 XX 号附近,需要帮助!”)。
若电话未接通,1 分钟后自动循环拨打其他紧急联系人,并播放预设语音录音(如 “我现在遇到危险,请尽快赶来”)。
静默求助:在危险场景下,用户可通过特定手势(如连续快速点击屏幕 3 次)无声发送求助信息,避免激怒施害者。
(三)系统设置优化
语音个性化:
在设置中增加 “语音偏好” 选项,用户可试听不同音色(如青年女声、老年男声)并选择。
根据用户 birthdate 自动触发节日语音问候(如 “生日快乐!今天天气晴朗,适合出行”)。
手势自定义:允许用户自定义触摸手势(如左右滑动切换导航模式、双击暂停语音),通过语音引导完成手势录制和测试。
三、数据安全与性能优化
权限控制:
采用 OAuth 2.0 协议实现第三方登录授权,用户数据加密存储(密码使用 BCrypt 哈希,坐标数据加盐加密)。
紧急联系人信息单独加密存储,与用户表分离,避免数据泄露时暴露敏感联系人。
实时更新机制:
地理信息表设置定时任务(如每日凌晨),通过爬虫或人工审核更新数据(如道路施工、公交站迁移)。
用户在导航中发现错误信息时,可通过语音指令 “报告问题” 提交反馈,经审核后实时更新至数据库。
四、扩展功能建议
社交互助模块:增加 “无障碍设施上报” 功能,用户通过语音描述(如 “XX 商场盲道被占用”)提交地理问题,其他用户可查看附近上报信息,形成 UGC 数据生态。
AI 语音助手:集成自然语言处理(NLP)技术,支持模糊指令解析(如 “帮我找最近的有电梯的地铁站”),并结合用户历史记录推荐路线。
通过以上设计,数据库结构满足高扩展性与查询效率需求,用户界面则以 “零视觉依赖” 为核心,通过语音与触觉的深度融合,最大化提升盲人用户的导航体验与安全性。
浙公网安备 33010602011771号