移動互連網工程--語音讀物的設計實現和產品規劃

來源:互聯網
上載者:User

標籤:des   android   style   blog   http   io   java   ar   strong   

 

前言:
  算是幸運的事, 在朋友友情贊助下做了個語音讀物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, 而不需要帶個幾乎沒用的外殼(或許中國人的消費習慣是, 只願花錢買帶實體的物品, 還不願意掏錢買付費軟體). 其互動方式, 有動畫也適合學生的學習習慣, 但總覺得少點什麼.
  要做好一款面向低年齡兒童的語音讀物, 其實蠻難的.

後記:
  原本想詳細的展開技術細節, 但寫著寫著就迷失了方向, 想想還是大致點一下. 對產品的思考和把握或許才是技術人員更應該關注的東西, 技術真得不是全部. 當然沒有技術是萬萬不行的, 呵呵.

 

移動互連網工程--語音讀物的設計實現和產品規劃

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.