移动互联网工程--语音读物的设计实现和产品规划

前言:
  算是幸运的事, 在朋友友情赞助下做了个语音读物App, 不仅攒了人品, 也攒到了个人在Android应用的第一桶金. 现在分享下对该语音读物App的一些技术方面的想法和产品实现上的感悟.

产品形态:
  该App的定位是语音读物, 主要面向低年龄学生. 学生可以浏览书架, 选择感兴趣的书籍. 然后点击具体的电子读物进行浏览学习. 步步高点读机在这块领域, 算是鼻祖, 也是该App模仿的对象.
  
  从用户的角度来解读该App, 主要有两块: 书架, 语音书.
  书架的设计大致如下:
  
  语音书的设计如下:
  
  注: 点击具体的文字, 会播放相应的语音, 图片来自网络

技术分析:
  从软件开发的角度去解读, 该APP的难点在于电子书的资源管理上. 一个是书架管理, 用于展示语音书的元信息列表. 另一个是电子书的语音素材管理.
  假设App是单机版, 那采用什么方案来存放语音书籍的元信息?
  这个相对还是简单的, 可由如下两种方式来实现.
  1. 外部导入sqlite的db文件
  2. 自定义xml文件来描述语音书籍列表
  比如如下规则:

<bookshelf>
  <book>
    <name>课本第一册</name>
    <image>default</image>
    <resource>2C8E4202929D8331ED585FCE30669649</resource>
  </book>
  <book>
    <name>课本第二册</name>
    <image>default</image>
    <resource>29E54AFB1494CB28E30B034B5FCBA408</resource>
  </book>
  ...
</bookshelf>

  评注: 实际采用方案二, 把自定义的book_desc.xml文件放到android工程res/xml中去, 然后运行时载入并解读.
  那对语音读物的存储如何来实现?
  对于具体的电子书, 我们把相关的素材(音频/图像)组织并整理汇总到一起. 这样可以为每本电子书打包成zip文件.
  
  具体实施之前, 我们需要做些准备工作:
  首先要做的是对资源进行压缩优化处理, 在保持音质/画质可接收的范围下, 尽量减少素材资源所占的空间比重. 相关的优化策略可以参考: 移动端音频和图形优化处理. 
  其次需要对Android的硬件/常见的存储方式, 需要有一定的理解, 具体可参见该文: 资源类APP的数据存储处理和优化.

  每本语音书籍, 包含如下目录结构:
  
  注: images存放图像文件, musics存放语音文件,而book.xml则具体描述每页的图像, 以及每页的关联区域和语音文件的对应关系.

  而具体book.xml的定义, 按如下规则来定义:

<book>
  <meta>
    <name>zp</name>
    <author>zp</author>
    <description>zp</description>
  </meta>
  <ppts>
    <!-- 具体某一页的详细定义 -->
    <ppt>
      <!-- 图片 -->
      <image>544F9EFF07DD68D1F143E3E9A995E573.jpg</image>
      <realx>533</realx>
      <realy>640</realy>
      <!-- 语音区域列表 -->
        <soundblocks>
          <!-- 具体的点击区域(tx, tp, bx, by)和相关联的语音music -->
          <soundblock>
            <topx>120</topx>
            <topy>71</topy>
            <bottomx>345</bottomx>
            <bottomy>117</bottomy>
            <music>C5ECF459D28DF8289E96DB7F1065C281.wav</music>
          </soundblock>
        </soundblocks>
        ...
    </ppt>
    ...
  </ppts>
</book>

  评注: <ppt>标签下为具体某一页的详细定义, 包含背景图片, 以及语音关联区域的坐标范围和响应语音

辅助软件设计:
  对于该App的设计, 最重要的就是语音书籍的定义以及后端的制作编辑工具.
  具体的设计, 请参见上部分. 而后端的制作编辑工具, 最终的产出就是那个book.xml.
  具体的工作界面如下所示:

对产品的思考:
  好的语音读物App, 应该具备什么?
  1). 好的交互性, 软件体验简单易学, 更适合低年龄儿童
  2). 黏性好, 让学生学得快, 且印象深刻
  这些都是基本的东西, 但真正实现起来却很难.
  当前所做的工作:
  1). 引入左右滑动效果, 手指滑动的交互方式更适合手机端应用
  2). 标识每个语音块区域, 显示小喇叭以表明这是相应的语音区域
  不足的是, 感觉用户体验还是一般. 这个不再是技术的问题, 而是产品形态的问题.
  回过头来看, 步步高点读机. 其核心理念是:实体硬件+软件APP, 硬件嵌入学习软件, 但我感觉本末倒置了, 就应该着重软件App, 而不需要带个几乎没用的外壳(或许中国人的消费习惯是, 只愿花钱买带实体的物品, 还不愿意掏钱买付费软件). 其交互方式, 有动画也适合学生的学习习惯, 但总觉得少点什么.
  要做好一款面向低年龄儿童的语音读物, 其实蛮难的.

后记:
  原本想详细的展开技术细节, 但写着写着就迷失了方向, 想想还是大致点一下. 对产品的思考和把握或许才是技术人员更应该关注的东西, 技术真得不是全部. 当然没有技术是万万不行的, 呵呵.

时间: 2024-10-09 04:16:41

移动互联网工程--语音读物的设计实现和产品规划的相关文章

一、VIP课程:互联网工程专题 05-快速掌握Jenkins原理与核心功能

第五课:快速掌握jenkins核心功能.docx 2.164 (2019-02) and newer: Java 8 or Java 11 2.jenkins 概述 jenkins 就是为了满足上述持续集成的要点而设计的一款工具,其主体框架采用JAVA开发,实质内部功能都是由各种插件实现,极大提高了系统的扩展性.其不仅可以满足JAVA系统的集成,也可以实现PHP等语言的集成发布.通过其pipeline 插件,用户可以随自己需要定制集成流程. 2.下载安装jenkins 下载:jenkins 支持

孢子框架-互联网金融平台微服务架构设计

按照孢子框架要义对互联网金融理财平台进行微服务架构设计.假设我们设计的目标是5年后的陆金所(https://www.lu.com/).陆金所简介,平安集团旗下理财平台,是中国最大的网络投融资平台之一,2011年9月在上海注册成立,注册资本金8.37亿元,lufax结合全球金融发展与互联网技术创新,在健全的风险管控体系基础上,为中小企业及个人客户提供专业.可信赖的投融资服务,帮助他们实现财富增值.截至2014年1月末,注册用户已逾570万. l 需求分析 参照陆金所,获得如下核心需求矩阵. 分类

互联网产品消息推送设计策略(转)

在移动互联时代,消息推送越来越受到各个APP的重视,本文就以互金产品为例阐述消息推送的几个类别以及应用的场景方式.运营策略,希望对你有益. 在之前一文中,笔者概括性的介绍了通知功能是互金理财平台的一个基础但重要的功能.消息推送能将个人账户相关.平台相关内容送达终端用户,是为互联网产品一个重要的功能.在移动互联网时代,移动客户端出现寡头效应,消息推送愈发重要,而在互金产品中尤甚. 因此本文将开始重点阐述互金产品消息推送的类别.场景.方式和前后端推送设计策略以及运营策略. 1 定义 本文所指的"互金

浅谈互联网企业数据中心网络设计

主要想解析下目前互联网公司数中心做为电子商务的基础承载面临的一些问题和挑战,以及目前我司在用网络设计供大家参考和指导,欢迎各位大大批评指正. 1.数据中心网络设计思考:互联网企业最大的特点在于公网.内网像两根平行线,中间的设备需要强大的横向扩展能力,所以采用的相应的VDC或vrf特性,将核心端口或端口组划至相应的VDC或VRF下 主要考虑端口密度.背板带宽.交换容量.特性.HA 无阻塞线速转发设计 高扩展性 端口密度 高转发缓存 高可用性 设计思路: 使用CSS/VSS/IRF技术将物理两台设备

互联网技术架构演变过程-软件架构设计学习第四天(非原创)

文章大纲 一.演变过程思路图二.何为大型网站三.架构体系演进四.架构总结五.参考文章 一.演变过程思路图 二.何为大型网站 1. 大型网站特性 既然说的是大型网站架构,那么架构的背后自然是解决人因面对大型网站特性而带来的问题.这样可以先给大家说下大型网站的特性,这些特性带来的问题就是人要解决的问题:(1)高并发.大流量:PV 量巨大:(2)高可用:7*24 小时不间断服务:(3)海量数据:文件数目分分钟 xxTB:(4)用户分布广泛,网络情况复杂:网络运营商:(5)安全环境恶劣:黑客的攻击:(6

Windows 10工程版本泄露全新设计的操作中心圆角样式

早些时候微软错误地向Windows 10所有测试通道推送内部工程版本,该版本构建后尚未经过微软内部测试. 当然本身微软也没准备推送所以该版本里很多新功能未被关闭,而成功升级的用户则可以立即查看这些功能. 此前蓝点网也提到错发的工程版本显示微软正在开发新开始菜单,除开始菜单外微软还在设计新的操作中心. 微软已经决心转向圆角: 数月以前微软将Windows 10搜索框样式进行改进,改进后的搜索框采用圆角样式放弃微软的横平竖直风格. 在这次泄露的操作中心里也同样开始转向圆角,从截图上我们可以看到操作中

的一个折衷互联网工程开发效率和系统性能

问题起源    今天,leader看了我写的代码.提了一个建议. 我在写p2p业务系统的时候,数据库底层使用了"关联查询,left-join",leader认为这样性能不好. 他建议,不使用关联查询,每次都是单表查询,假设须要查询关联数据.添加一次查询,然后再把两次甚至多次的数据合并. 即通过程序而不是sql,合并数据. 他的思考逻辑:   他之前在淘宝工作过.web系统对性能要求比較高.Web前端等程序能够使用分布式,量再大,多台应用server就能够应付了.而数据库,最多也就是主从

一、VIP课程:互联网工程专题 03-Maven基本概念与核心配置

概要: maven 基本概念 maven 核心配置 一.maven  安装与核心概念 概要: maven 安装 maven 编译(compile) 执行测试用例(test) maven 打包 maven  依懒管理 1.安装 官网下载 Maven (https://maven.apache.org/) 解压指定目录 配置环境变量 检查安装是否成功 (mvn -version) 2.maven 编译 maven 编译过程演示 l  创建maven项目. l  创建src 文件 l  编写 pom

一、VIP课程:互联网工程专题 01-Git基本概念与核心命令掌握

第一课:Git基本概念与核心命令掌握.docx 课程概要: GIT 体系概述 GIT 核心命令使用 GIT 底层原理 1.安装git 客户端安装 官方客户端: httpsd://git-scm.com/downloads 其它客户端:https://tortoisegit.org/download/ 原文地址:https://www.cnblogs.com/MarlonKang/p/12300545.html