SlideShare a Scribd company logo
1 of 43
Audiobooks W3C REC
W3C有聲書國際標準實作講座
張育瑋
凌網科技研發處處長
台灣數位出版聯盟
專業技術組組長
2021.01.08
哪裡來的有聲書國際標準
Audiobooks
W3C Recommendation 10 Nov. 2020
有聲書的發展歷史 - 源自於無障礙輔助需求
1877
愛迪生
“Phonographic
Books”
1931
美國盲人協會與
國會圖書館推動
“Talking Books
Program”
1994
美國有聲書協會
(APA) 創造了
“audiobook” 這
個成為產業標準
的名詞
1997
Audible.com
(Amazon子公司)
開發了第一個數
位媒體播放器,
可以很方便的直
接下載有聲內容
現今
有聲書已是一個
30 億美元 (US)
且快速成長的產
業 (APA)
為什麼要制定有聲書國際標準
• 2018 美國有 30 億美元以上的產值(APA
調查報告)
• 中國有聲書市場發展快速且龐大
• 台灣近兩年有聲內容也開始篷勃發展
– 2020號稱台灣 Podcast 元年
• 其他各地的市場也逐漸成長中
在這之前沒有一個有聲書
的通用產業標準格式
缺乏有聲書產業標準有的現況
經銷商 1
• 有內容標準要求
• 音檔接受 MP3
• 音軌資訊使用
Email 遞交
• 封面採 JPEG 格
式
• 支援附加 PDF
內文
經銷商 2
• 沒有內容標準要
求
• 音檔接受 MP3
• 音軌資訊格式要
求 TXT
• 封面採 JPEG 格
式
• 不支援附加內文
平台 A
• 要求用 JSON 編
撰有聲書
Metadata
• 音檔發佈使用
URL
• 檔案統一採散裝
置於平台業者伺
服器
平台 B
• 音檔格式採用
M4B
• Metadata 與音
檔要求分開傳遞
W3C Audiobook 規格制定過程的原則
• 參考市場既有產品的使用體驗
– 透過已經市場考驗的產品定義使用情境
• 檢視目前市場上缺乏的功能機制
– 有什麼是使用者會需要但市場上尚未實現的使
用情境?
有聲書標準的四個目標情境
補充內容
圖片、插畫、全文或任
創作者認為可增進使用
體驗的非有聲內容。
TOC
一個HTML格式的TOC,
可以讓使用者了解自已
在內容中所在的位置。
同步媒體
同步語音與文字,可在
文字與聲音中任意切換。
封裝
提供一個可用於B2B交換
或易於使用者下載的封
裝格式。
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 成員
W3C Audiobooks 有聲書推薦標準(續)
• 建立一個在網頁上與企業間交換與分發有
聲書的標準格式。
• 不定義創作者應用什麼樣的音源格式,僅
定義有聲書本體的組成描述宣告。
• 不定義播放器(User Agent )該如何處理
有聲書內容,但有另外提供參考建議
– https://www.w3.org/TR/pwp-ucr
60分鐘搞懂有聲書製作這回事
Audiobooks
W3C Recommendation 10 Nov. 2020
什麼是有聲書?(W3C SPEC.)
• 一本有聲書是聲音資源的集合,其透過將
閱讀順序、詮釋資料以及資源全部包含於
一份宣告中所組合而成。
• 有聲書可以在開放網頁平台上使用,或者
作為一個封裝實體供交換或離線使用。
有聲書的組成成分圖
Open Web Platform
schema.org
Manifest - 有聲書的資源清單宣告檔
• 用一堆屬性來定義、描述一本有聲書的
基本資訊(Metadata)與相關資源
(Resources)。
• 使用 JSON(JSON-LD)語法來記錄屬性
資訊
• 為 Publication Manifest 的子規格
什麼是 JSON
JavaScript Object Notation
• 一種輕量級的資料交換語言
• 用鍵值對(“key” : value)記錄資料(分號分隔)
• 資料屬性間用逗點分隔
• 支援資料類型
– 數字,如:23
– 字串(雙引號括起來),如:"The Hunger Games"
– 布林值:true、false
– 陣列:[中括號內多筆資料],如:["Amy", "Simon"]
– 物件:{大括號內包含多組「鍵值對」},如:
"staff":{"name":"Amy", "age":23}
有聲書用 JSON-LD 來宣告定義
• LD – Linked Data: 把資源連起來
– 把電腦看的懂的東西(資源)連結起來
• JSON-LD = JOSN + LD
• 範例:一個用來描述 “人” 的 JSON-LD
人看的懂
電腦看不懂
Context 語境:
告訴電腦這段資
料在描述什麼
Audiobooks Manifest 的必要屬性
• @context(JSON-LD語境)
– 為一個陣列,須宣告於 manifest 最前面
– 必要語境(照著寫就對了)
• https://schema.org(資料格式的說明書)
• https://www.w3.org/ns/pub-context(說明這是一份”出版品”)
– 選用語境
• 說明manifest的語言與方向:language、direction
Audiobooks Manifest 的必要屬性
• conformsTo(規格定義)
– 指到有聲書規格定義(照填)
• "https://www.w3.org/TR/audiobooks/"
• name (出版品標題)
Audiobooks Manifest 的必要屬性
• readingOrder(預設閱讀順序)
– 有聲書中所有聲音資源的行進順序(由上到下)。
– 至少包含一個聲音資源且每個資源只能出現一次
– 只能是聲音類型的資源
– 需指定資源 url、type 為 LinkedResource
每個資源都是一個
“LinkedResource”
Linked Resources 的屬性結構
• type(選填):預設值 “LinkedResource”
• url(必填):可存取到資源的URL
• encodingFormat (選填) :資源編碼類型
• name (選填) :資源名稱
• description (選填):資源描述
• rel (選填) :與此出版品的關係
• integrity (選填):檔案校驗碼
• duration (選填):時間長度
• alternate(選填):替代內容,例如文字
媒體片段(Media Fragment)功能
• 在readingOrder可用媒體片段指定引入資源片段
– 格式:#t=開始時間,結束時間(秒)
• content.mp3#t=20(相當於20,end)
• content.mp3#t=20,60
• content.mp3#t=,60(相當於 0,60)
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"
Audiobooks Manifest 的建議屬性
• 創作者(Creators)
– 可以有一或多個創作者
• 個人:Person
• 組織:Organization
– 有聲書的兩種建議創作者
• author(作者):個人或組織
• readBy(朗讀者):個人
– 若為多個則使用陣列表示
• "author" : [{…}, {…}]
Audiobooks Manifest 的建議屬性
• duration (播放時間)
– 採ISO 8601標準時間段(duration)表示法
• PnYnMnDTnHnMnS
– P1D(1天) = PT24H(24小時)
– PT670S(670秒)
– PT3M24S(3分24秒) = PT204S(204秒)
• 如果沒有特別需求,建議都用秒記錄即可
– manifest層:整本有書聲的總時間
– readingOrder層:個別item的時間
– 所有item的時間總和需等於manifest的時間
Audiobooks Manifest 的建議屬性
• abridged(是否為精簡版)
– "abridged":true
• inLanguage(出版品語言)
– "abridged":"en"
• datePublished / dateModified
– "dateModified":"2021-01-08"
– "datePublished":"1998"
• readingProgression(閱讀方向)
– "readingProgression":"ltr"
Audiobooks Manifest 的建議屬性
• 無障礙說明屬性
– accessMode(存取方式)
– accessModeSufficient( accessMode 的明確說明)
– accessibilityFeature(支援無障礙的特性)
– accessibilityHazard(防礙無障礙存取的特性)
– accessibilitySummary(人看的無障礙支援/阻礙說明)
Manifest 的 resources(資源清單)
• 列舉所有用於處理與呈現有聲書,但未列
於 readingOrder 的附加資源。
– 主要進入頁(Primary Entry Page)
– 目錄(TOC)
– 書封(Cover)
– 預覽音檔、試播檔(Previews)
– 其他輔助內容(Supplemental Content)
資源清單內容 – 主要連入頁PEP
• 必需有一個用來當有聲書起始頁的HTML資源
– 通常命名為 index.html
– 封裝格式有聲書可以沒有 PEP(僅需publication.json)
• 用於取得有聲書的 manifest 宣告
– manifest 可以嵌入 PEP 中
– 也可以獨立宣告再 link 進 PEP 裡(建議)
• 也可用於作為有聲書的內容存取頁
– Browser可以直接打開
• PEP 需宣告在 manifest 的 resources 中
資源清單內容 – 目錄TOC
• 目錄可以直接寫在 PEP 裡
– 用 role 屬性為 “doc-toc” 的 nav 元素撰寫
• 也可以是獨立的資源檔案
– 一個獨立的 HTML
– 需宣告在 manifest 的 resources 中
• 可在 TOC 中使用媒體片段指到對應的時間
– audio.mp3#t=20,96(需留意end,建議用start就好)
資源清單內容– 書封Cover
• 透過 "rel" : "cover" 連結關係定義
• 可以是圖片或HTML,建議用圖片較單純
• 圖片建議要加上文字說明(無障礙)
資源清單 –試播檔Previews
• 透過 "rel" : "preview" 連結關係定義
• 可以是有聲書的外部或內部資源
資源清單 – 輔助內容Supplemental Content
• 所有用於處理與呈現有聲書,但未列於閱
讀順序的附加資源
• 應該要在 TOC 中列出補助內容
• Player 如果無法處理,建議提示 user
有聲書的選配功能
Audiobooks
W3C Recommendation 10 Nov. 2020
打包封裝有聲書的方式
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相容性問題)
障礙輔助同步媒體(Synced-Media)
• 有聲書SPEC建議實作的功能(非規範)
• 類似EPU3的MediaOverlay
• 由W3C出版品同步媒體社群小組制定中
• 目前規格版本
– Draft Community Group Report 2020/12/27
• 用JSON檔案記錄文字與聲音的時間關係
AUDIOBOOKS 實例展示
W3C Recommendation 10 Nov. 2020
台灣數位出版聯盟有聲書範例
• 賴和 – 前進
• 實作參考
– 可直接下載 sample 修改製作自已的有聲書
– https://github.com/dpublishing/audiobooks-
samples
• 播放展示
– https://dpublishing.github.io/worlds-best-
audiobook/web/library/
開源有聲書播放程式
• 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
有聲書製作工具
• 目前市場上仍缺乏有聲書的GUI製作工,
多需創作者手工打造
• 凌網HyRead正開發一套跨平台有聲書
製作工具將於近期提供免費下載使用
有聲書標準目前現況與未來發展
Audiobooks
W3C Recommendation 10 Nov. 2020
Audiobooks 規格中文版
• 正式規格
– 有聲書( Audiobook)
– 輕量包裝格式( Lightweight Packaging
Format)
• 正式規格之翻譯已獲W3C接受納入官方網站
• 草稿文件
– 同步旁白(Synchronized Narration)
– 將同步旁白整合進出版品宣告(Incorporating
Synchronized Narration into a Publication Manifest)
https://github.com/dpublishing/audiobooks-specs-tc
Audiobooks 標準目前支援度
• 目前支援程度
– 官方 TestCase,共 6 個 Player 通過測試
https://w3c.github.io/publ-tests/test_reports/manifest_processing/
– 尚待平台實作支援
• 凌網HyRead、樂天Kobo、讀墨Readmoo…
• 未來發展
– 更新國際支援資訊
– 推動國內平台業者對有聲書規格之支援
– 製定台灣有聲書製作指引規範
– 舉辦推廣與教育活動
其他 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/
感謝您的參與
yanni.chang@hyweb.com.tw
Q&A
線上問卷

More Related Content

What's hot

What's hot (20)

Maslak ahle hadees ki haqiqat
Maslak ahle hadees ki haqiqatMaslak ahle hadees ki haqiqat
Maslak ahle hadees ki haqiqat
 
Incremental View Maintenance with Coral, DBT, and Iceberg
Incremental View Maintenance with Coral, DBT, and IcebergIncremental View Maintenance with Coral, DBT, and Iceberg
Incremental View Maintenance with Coral, DBT, and Iceberg
 
Growing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RSGrowing the Delta Ecosystem to Rust and Python with Delta-RS
Growing the Delta Ecosystem to Rust and Python with Delta-RS
 
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのかApache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
Apache HBaseの現在 - 火山と呼ばれたHBaseは今どうなっているのか
 
Irenko y la ciudad de cristal
Irenko y la ciudad de cristal Irenko y la ciudad de cristal
Irenko y la ciudad de cristal
 
Primary Exam Bangla suggestion-www.itmona.com .pdf.pdf
Primary Exam Bangla suggestion-www.itmona.com .pdf.pdfPrimary Exam Bangla suggestion-www.itmona.com .pdf.pdf
Primary Exam Bangla suggestion-www.itmona.com .pdf.pdf
 
Wido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph clusterWido den Hollander - 10 ways to break your Ceph cluster
Wido den Hollander - 10 ways to break your Ceph cluster
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
Continuous Application with FAIR Scheduler with Robert Xue
Continuous Application with FAIR Scheduler with Robert XueContinuous Application with FAIR Scheduler with Robert Xue
Continuous Application with FAIR Scheduler with Robert Xue
 
Streaming SQL for Data Engineers: The Next Big Thing?
Streaming SQL for Data Engineers: The Next Big Thing?Streaming SQL for Data Engineers: The Next Big Thing?
Streaming SQL for Data Engineers: The Next Big Thing?
 
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DBDistributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
Distributed Databases Deconstructed: CockroachDB, TiDB and YugaByte DB
 
2
22
2
 
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
Using Delta Lake to Transform a Legacy Apache Spark to Support Complex Update...
 
Introduction and HDInsight best practices
Introduction and HDInsight best practicesIntroduction and HDInsight best practices
Introduction and HDInsight best practices
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark Jobs
 
Debugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden KarauDebugging PySpark: Spark Summit East talk by Holden Karau
Debugging PySpark: Spark Summit East talk by Holden Karau
 
Materialized Column: An Efficient Way to Optimize Queries on Nested Columns
Materialized Column: An Efficient Way to Optimize Queries on Nested ColumnsMaterialized Column: An Efficient Way to Optimize Queries on Nested Columns
Materialized Column: An Efficient Way to Optimize Queries on Nested Columns
 
Math magic by tanbircox
Math magic by tanbircoxMath magic by tanbircox
Math magic by tanbircox
 
Microsoft word by tanbircox
Microsoft word by tanbircoxMicrosoft word by tanbircox
Microsoft word by tanbircox
 
Diving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction LogDiving into Delta Lake: Unpacking the Transaction Log
Diving into Delta Lake: Unpacking the Transaction Log
 

W3C有聲書國際標準實作講座