W3C有聲書國際標準實作講座
- 4. 為什麼要制定有聲書國際標準
• 2018 美國有 30 億美元以上的產值(APA
調查報告)
• 中國有聲書市場發展快速且龐大
• 台灣近兩年有聲內容也開始篷勃發展
– 2020號稱台灣 Podcast 元年
• 其他各地的市場也逐漸成長中
在這之前沒有一個有聲書
的通用產業標準格式
- 5. 缺乏有聲書產業標準有的現況
經銷商 1
• 有內容標準要求
• 音檔接受 MP3
• 音軌資訊使用
Email 遞交
• 封面採 JPEG 格
式
• 支援附加 PDF
內文
經銷商 2
• 沒有內容標準要
求
• 音檔接受 MP3
• 音軌資訊格式要
求 TXT
• 封面採 JPEG 格
式
• 不支援附加內文
平台 A
• 要求用 JSON 編
撰有聲書
Metadata
• 音檔發佈使用
URL
• 檔案統一採散裝
置於平台業者伺
服器
平台 B
• 音檔格式採用
M4B
• Metadata 與音
檔要求分開傳遞
- 8. W3C Audiobooks 有聲書推薦標準
• 標準正式名稱:Audiobooks
– 舊稱 Audiobook Profile for Publication Manifest
• 2020年11月發布為 W3C 正式標準
– W3C Recommendation 10 November 2020
– https://www.w3.org/TR/audiobooks/
– 中文翻譯:https://dpublishing.github.io/audiobooks-specs-
tc/audiobooks.html
• 規格撰寫作者
– Wendy Reid (Rakuten/Kobo)
– Matt Garrish (DAISY Consortium)
• 參與制定
– 包含 Kobo、Google、EDRLab、DAISY、角川、台灣數位出版聯盟在內之
數十位 W3C Publishing WG 成員
- 9. W3C Audiobooks 有聲書推薦標準(續)
• 建立一個在網頁上與企業間交換與分發有
聲書的標準格式。
• 不定義創作者應用什麼樣的音源格式,僅
定義有聲書本體的組成描述宣告。
• 不定義播放器(User Agent )該如何處理
有聲書內容,但有另外提供參考建議
– https://www.w3.org/TR/pwp-ucr
- 13. Manifest - 有聲書的資源清單宣告檔
• 用一堆屬性來定義、描述一本有聲書的
基本資訊(Metadata)與相關資源
(Resources)。
• 使用 JSON(JSON-LD)語法來記錄屬性
資訊
• 為 Publication Manifest 的子規格
- 14. 什麼是 JSON
JavaScript Object Notation
• 一種輕量級的資料交換語言
• 用鍵值對(“key” : value)記錄資料(分號分隔)
• 資料屬性間用逗點分隔
• 支援資料類型
– 數字,如:23
– 字串(雙引號括起來),如:"The Hunger Games"
– 布林值:true、false
– 陣列:[中括號內多筆資料],如:["Amy", "Simon"]
– 物件:{大括號內包含多組「鍵值對」},如:
"staff":{"name":"Amy", "age":23}
- 15. 有聲書用 JSON-LD 來宣告定義
• LD – Linked Data: 把資源連起來
– 把電腦看的懂的東西(資源)連結起來
• JSON-LD = JOSN + LD
• 範例:一個用來描述 “人” 的 JSON-LD
人看的懂
電腦看不懂
Context 語境:
告訴電腦這段資
料在描述什麼
- 16. Audiobooks Manifest 的必要屬性
• @context(JSON-LD語境)
– 為一個陣列,須宣告於 manifest 最前面
– 必要語境(照著寫就對了)
• https://schema.org(資料格式的說明書)
• https://www.w3.org/ns/pub-context(說明這是一份”出版品”)
– 選用語境
• 說明manifest的語言與方向:language、direction
- 18. Audiobooks Manifest 的必要屬性
• readingOrder(預設閱讀順序)
– 有聲書中所有聲音資源的行進順序(由上到下)。
– 至少包含一個聲音資源且每個資源只能出現一次
– 只能是聲音類型的資源
– 需指定資源 url、type 為 LinkedResource
每個資源都是一個
“LinkedResource”
- 19. Linked Resources 的屬性結構
• type(選填):預設值 “LinkedResource”
• url(必填):可存取到資源的URL
• encodingFormat (選填) :資源編碼類型
• name (選填) :資源名稱
• description (選填):資源描述
• rel (選填) :與此出版品的關係
• integrity (選填):檔案校驗碼
• duration (選填):時間長度
• alternate(選填):替代內容,例如文字
- 21. Audiobooks Manifest 中的建議屬性
• type(出版品類型)
– 沒填的話,預設為“Audiobook”
• "type":"Audiobook"
• id(標準識別碼)
– URL(應指到 PEP) 或 URN 型式
• http://www.w3.org/TR/tabular-data-model/
• urn:isbn:9780123456789
• urn:uuid:49fa8ddc-f873-4c74-8703-d99fd0371c88
• url(出版品連結)
– 出版品的網址
• "url":"https://publisher.example.org/janeeyre"
- 22. Audiobooks Manifest 的建議屬性
• 創作者(Creators)
– 可以有一或多個創作者
• 個人:Person
• 組織:Organization
– 有聲書的兩種建議創作者
• author(作者):個人或組織
• readBy(朗讀者):個人
– 若為多個則使用陣列表示
• "author" : [{…}, {…}]
- 23. Audiobooks Manifest 的建議屬性
• duration (播放時間)
– 採ISO 8601標準時間段(duration)表示法
• PnYnMnDTnHnMnS
– P1D(1天) = PT24H(24小時)
– PT670S(670秒)
– PT3M24S(3分24秒) = PT204S(204秒)
• 如果沒有特別需求,建議都用秒記錄即可
– manifest層:整本有書聲的總時間
– readingOrder層:個別item的時間
– 所有item的時間總和需等於manifest的時間
- 24. Audiobooks Manifest 的建議屬性
• abridged(是否為精簡版)
– "abridged":true
• inLanguage(出版品語言)
– "abridged":"en"
• datePublished / dateModified
– "dateModified":"2021-01-08"
– "datePublished":"1998"
• readingProgression(閱讀方向)
– "readingProgression":"ltr"
- 25. Audiobooks Manifest 的建議屬性
• 無障礙說明屬性
– accessMode(存取方式)
– accessModeSufficient( accessMode 的明確說明)
– accessibilityFeature(支援無障礙的特性)
– accessibilityHazard(防礙無障礙存取的特性)
– accessibilitySummary(人看的無障礙支援/阻礙說明)
- 26. Manifest 的 resources(資源清單)
• 列舉所有用於處理與呈現有聲書,但未列
於 readingOrder 的附加資源。
– 主要進入頁(Primary Entry Page)
– 目錄(TOC)
– 書封(Cover)
– 預覽音檔、試播檔(Previews)
– 其他輔助內容(Supplemental Content)
- 27. 資源清單內容 – 主要連入頁PEP
• 必需有一個用來當有聲書起始頁的HTML資源
– 通常命名為 index.html
– 封裝格式有聲書可以沒有 PEP(僅需publication.json)
• 用於取得有聲書的 manifest 宣告
– manifest 可以嵌入 PEP 中
– 也可以獨立宣告再 link 進 PEP 裡(建議)
• 也可用於作為有聲書的內容存取頁
– Browser可以直接打開
• PEP 需宣告在 manifest 的 resources 中
- 28. 資源清單內容 – 目錄TOC
• 目錄可以直接寫在 PEP 裡
– 用 role 屬性為 “doc-toc” 的 nav 元素撰寫
• 也可以是獨立的資源檔案
– 一個獨立的 HTML
– 需宣告在 manifest 的 resources 中
• 可在 TOC 中使用媒體片段指到對應的時間
– audio.mp3#t=20,96(需留意end,建議用start就好)
- 33. 打包封裝有聲書的方式
Lightweight Packaging Format, LPF
• 有聲書SPEC建議採用的格式(非規範)
• 目前LPF規格版本
– W3C Working Group Note 19 March 2020
– 非W3C正式推薦標準(規格)
• 封裝方式
– 將整包有聲書 ZIP 起來,副檔名取為 .lpf
– MIME媒體類型:application/lpf+zip
– 根目錄需有 publication.json 或 index.html(不可加密
)
– 封裝檔中需含所有的相關資源
– 檔案名稱與資源名稱建議用英文(ZIP相容性問題)
- 36. 台灣數位出版聯盟有聲書範例
• 賴和 – 前進
• 實作參考
– 可直接下載 sample 修改製作自已的有聲書
– https://github.com/dpublishing/audiobooks-
samples
• 播放展示
– https://dpublishing.github.io/worlds-best-
audiobook/web/library/
- 37. 開源有聲書播放程式
• Readium – Thorium Reader(適合一般 user)
– EDRLab 開發
– 跨平台 Windows、MacOS、Linux
– 支援 EPUB3、Audiobooks(LPF)
– 支援離線播放
– https://www.edrlab.org/software/thorium-reader/
• The World‘s Best Audiobook(適合開發人員)
– Marisa Demeglio (DAISY) 開發
– 支援線上播放
– https://github.com/marisademeglio/worlds-best-
audiobook
- 40. Audiobooks 規格中文版
• 正式規格
– 有聲書( Audiobook)
– 輕量包裝格式( Lightweight Packaging
Format)
• 正式規格之翻譯已獲W3C接受納入官方網站
• 草稿文件
– 同步旁白(Synchronized Narration)
– 將同步旁白整合進出版品宣告(Incorporating
Synchronized Narration into a Publication Manifest)
https://github.com/dpublishing/audiobooks-specs-tc
- 41. Audiobooks 標準目前支援度
• 目前支援程度
– 官方 TestCase,共 6 個 Player 通過測試
https://w3c.github.io/publ-tests/test_reports/manifest_processing/
– 尚待平台實作支援
• 凌網HyRead、樂天Kobo、讀墨Readmoo…
• 未來發展
– 更新國際支援資訊
– 推動國內平台業者對有聲書規格之支援
– 製定台灣有聲書製作指引規範
– 舉辦推廣與教育活動
- 42. 其他 Audiobooks 相關資料
• W3C 測試樣本
– https://github.com/w3c/publ-
tests/tree/master/test_content/audiobooks
• W3C Publication Manifest 正式標準
– https://www.w3.org/TR/pub-manifest/
• Reading System 實作使用個案
– https://www.w3.org/TR/pwp-ucr/