共享資源:定時文本

This page is a translated version of a page Commons:Timed Text and the translation is 100% complete. Changes to the translation template, respectively the source language can be submitted through Commons:Timed Text and have to be approved by a translation administrator.
Shortcuts

考量到名稱相近或相同,你可能是在找共享資源:文件標題

定時文本(TimedText)是一个自定义的維基媒體共享資源的命名空间,用于容纳隱藏字幕、或翻譯字幕的文本,使其与其他媒体(例如音频或视频文档)相关联。本页旨在解释该功能的概念和使用方法。

隱藏字幕 (Closed captioning, CC)和翻譯字幕都是显示在电视、视频屏幕或其他视觉显示器上的文字的一種進程,以提供额外的或是作為說明的信息。 這两者通常都是作为某个演出,在它出現時的音频部分的转录(可能是逐字记录、也可能是以已编辑好的形式),有时甚至還會包括某些非语音元素的描述。 这有助于听障人士和失聰人士,并为非母语人士提供了理解多媒体文件内容的途径。

使用方法

视频播放器示例

也可参见翻譯字幕與隱藏字幕

有隱藏字幕的视频和音频片段的缩略图会出現覆蓋的CC图标。 打开播放器后,您所使用语言的翻譯字幕会自动被启用。 您可以在播放器的控件中找到 图标来切换语言、开关翻譯字幕或更改翻譯字幕的格式。

定时文本可用于任何以时间顺序呈现的媒体:

  • 音频文件
  • 无声视频(默劇)
  • 口语视频
  • 演示一个概念或某物如何运作的动画

实际案例

寻找

查找某個定时文本
Add below the name of the video to search
(do not delete the TimedText: prefix, add the text after it, e.g. TimedText:Elephants_Dream.ogv).
REMINDER : If the TimedText doesn't exist, don't forget to add language & extension, e.g. TimedText:Elephants_Dream.ogv.en.srt) to create a TimedText page - see Commons:Timed Text
  • {{Allpages|102}}會以TimedText來呈現,並列出命名空间102號中的所有页面。

共享資源需要一种針對特定语言查找定时文本文件的方法;下列語言正困擾於搜索功能的限制(例如:它不會显示所有匹配的結果;它包含有不匹配的內容;它需要有正则表达式的支持)。 搜索也包括會去一些不同语言的定时文本的.srt文件:

EnglishGermanFrenchPortugueseRussianSwedishUkrainianPolishIndonesian

其他帮助用户查找定时文本的方法:

  • {{Closed captions}} 會显示出文件所有可用的隱藏字幕文件的链接,可將它放在某个媒体页面及其討論页面上。
  • {{special|Prefixindex/TimedText:{{PAGENAME}}.|stripprefix|1|subtitles}} 會生成一個指向所有相关的定时文本文件的链接(范例)。
  • Commons:Timed Text/search by lang會显示出所指定的语言中所有定时文本文件的搜索链接,這对共享資源页面、分类、和討論页面有用。

标记和查找需要翻譯字幕的视频

{{Captions requested}}模板可用于标记视频需要字幕。该模板會将其添加到Videos needing subtitles分类中,这样某個人就可以看到哪些视频、哪些用户或作者已要求提供视频的文字記錄。

此模板和类别属于Commons:WikiProject Deaf及其姐妹项目元維基:維基失聰人Wikipedia:WikiProject Deaf的范围內。

寻找需要翻譯字幕的视频

查找此类视频的方法之一是根据首选起始语言打开 Category:Files with closed captioning 中的一个子类别,然后使用Help:FastCCI(位于页面右上方),去包含没有想要的目标语言字幕的视频。

示例
  • 要查找有英文字幕的视频以进行翻译,请访问Category:Files with closed captioning in English
  • 然后,单击FastCCI箭头打开子菜单,选择 "在此类别中但不在......"。
  • 在文本框中,根据您首选的目标语言输入相应的类别:
    • 德语请输入Files with closed captioning in German
    • 法语请输入Files with closed captioning in French
    • 俄语请输入Files with closed captioning in Russian

等等..

定时文本的讨论

TimedText talk命名空间用于讨论各自的定时文本页面,但也可用于链接和分类定时文本页面。

維護工作

上载

要上传已创建的字幕文件,请在计算机上用文本编辑器(如記事本)打开文件,然后将文本复制到定时文本的名称空间中的新页面,该页面应与视频的文件名和语言代码相匹配。

製作

共享資源使用SubRip (.srt) 檔案格式來製作隱藏字幕和翻譯字幕。您可以用多種方式建立這些檔案。

為現有的共享資源檔案製作翻譯字幕「頁面」

 
定时文本链接

選項1:在檔案的共享資源檔案頁面中(推薦使用)

您可以使用在共享資源檔案上任何合適的多媒體檔案的頂端的「定时文本」連結。

選項2:直接在媒體播放器中

 
CC-按鈕的位置

使用維基媒體HTML5媒體播放器工具列上的CC按鈕,您可以選擇可用的翻譯字幕,或開啟翻譯字幕編輯器為影片製作翻譯字幕。

選項3:建立一個空白頁(適用於進階使用者)

您總是可以直接在共享資源中使用模板 TimedText:[Common_File_Name.extension].[language].srt 來建立頁面,其中 [Common_File_Name.extension] 是檔案名稱,而 [language] 則是語言的ISO代碼。

範例: 想要增加翻譯字幕到Elephants_Dream.ogg,您可以為英文翻譯字幕建立TimedText:Elephants_Dream.ogg.en.srt頁面,或為法文翻譯字幕建立TimedText:Elephants_Dream.ogg.fr.srt頁面。

擷取現有的翻譯字幕來匯入字幕

從 DVD 製作翻譯字幕

要複製DVD現有的字幕,您可以使用SubRip等等軟體。然後,您可以將它們複製貼上wiki共享資源的翻譯字幕頁中。

使用YouTube製作翻譯字幕

YouTube允許那些擁有YouTube帳戶的使用者們從任何上傳的檔案製作翻譯字幕。請記住,語音辨識是自動化的且會產生意想不到的結果。最好是將檔案的文字記錄上傳到YouTube。這會提供更好的結果。然後,您可以將它們複製貼到wiki共享資源的翻譯字幕頁面中。

製作翻譯字幕的步驟(可以在這裡找到步驟的視訊教學)。

  1. 上傳檔案。(多媒體檔案必須同時包含視訊軌,但您可以自由選擇空白的視訊軌或任何其他視訊軌)。
  2. 上傳時,在「顯示更多」功能表下將檔案的視訊語言設定為適當的語言。
  3. 或是,在上傳之後,在特定影片的詳細資訊中或在YouTube Studio的導覽中選擇「翻譯字幕」 。
  4. 按一下「新增」或「新增語言」。
  5. 您可以用三種方式的其中之一來新增翻譯字幕:
    1. 上傳一個適當格式的文字記錄。
    2. 複製並貼上文字記錄。
    3. 觀看影片時手動輸入。
  6. 然後字幕就會被整合到視訊中。
  7. 在「編輯調速」檢視中,從三個點(...)選單下的翻譯字幕選單下載 .sbv 檔案。
  8. 將 .sbv 檔案的內容轉換為 .srt 檔案。有多種線上工具可協助您完成此步驟。
    1. ffmpeg是開放原始碼的一個選項 (指引)。
  9. 上傳.srt檔案至維基媒體共享資源的視訊的對應頁面。

從YouTube下載翻譯字幕

您可以從YouTube(可能還有其他幾個視訊網站)上的視訊下載翻譯字幕,像是這樣:

  1. 安裝yt-dlp
  2. 執行yt-dlp --list-subs url(將url改為youtube的url)
  3. 執行例如yt-dlp --write-subs en --sub-format vtt url(將url改為youtube的url)
  4. 也許srt翻譯字幕也是可用的,所以您應該用它而不是用vtt字幕,或者您可以一次下載所有字幕
  5. 使用FFmpeg(請參閱:#Convert YouTube Subtitles to Timed Text format)或是這個之類的web UI工具,將vtt翻譯字幕(或您所擁有的格式)轉換為srt翻譯字幕。
  6. 然後您可以將這些貼到WMC上視訊的TimedText頁面上

如果您使用video2commons工具,可以勾選「匯入翻譯字幕」,但這對vtt翻譯字幕 (phab:T368298)不起作用,因此對於這些影片,您也需要執行上述匯入翻譯字幕的步驟。

機器轉錄

您可以使用開放原始碼工具SoniTranslate更簡單快速地產生機器轉譯字幕。 如果您能檢查一下這些內容,尤其是如果您也使用該工具進行其他語言的機器翻譯,那就更好了。 例如,它可能會將年份輸出為長文本而非數字、或者弄錯人名。 如何使用這個工具在Help:AI video dubbing中有說明。 [1] 如果沒有現有的翻譯字幕要匯入,這可能是加入定時文本最快的方法了。 即使您沒有GPU,轉錄也通常只需要幾秒鐘,這取決於視訊有多長。

這些定時製作的字幕非常適合用來為其他語言的視訊配音,而手動製作的字幕通常不會這樣。您可以編輯翻譯字幕,然後將其儲存為 srt 檔案,並將其作為工具的輸入,讓它以其他語言製作音訊或翻譯字幕。

使用whisper.cpp製作翻譯字幕

截至2024年Whisper語音辨識系統AI模型[1]是目前最先進的語音轉錄模型,可使用Python或whisper.cpp在本機執行。 與早期的Vosk模型不同,它們也會產生標點符號,使其輸出更接近高品質的人類轉錄。 同樣地,您應該根據影片檢查AI產生的翻譯字幕,並修正錯誤、加上標點符號、檢查人名和地名的拼字是否正確、檢查事實和數字等。 AI翻譯字幕作為初稿非常有用,但通常也會包含一些人類轉譯者不會犯的愚蠢錯誤。

whisper.cpp的一項優點在於它特別針對在CPU而非GPU上執行進行最佳化 (所以如果您有AMD顯示卡、因此沒有輝達的CUDA,它就特別有用)。 但CUDA和(在Mac上的)Metal也受支援,因此它可以輕鬆適應不同的硬體配置。 另一個優點是它不需要安裝任何外部的相依,也就是不需要Python或PyTorch,因為它是用C++寫成的,造就它的下載量比Python的機器學習環境小很多。

一些視訊編輯和隱藏字幕GUI軟體現在已內建Whisper功能: 開放原始碼的範例包括視訊編輯器Kdenlive (自23.04版起;需要Python) 和 Subtitle Edit (Python或C++都可以用來執行Whisper模型)。

但直接執行命令列版本的whisper.cpp來建立SRT檔案也不是太困難,只要您的作業系統有C語言編譯器、make等工具來編譯它:

首先,使用例如 ffmpeg 擷取視訊的音軌,並將其轉換為 16 kHz 取樣率:

ffmpeg -i some_video.ogv -ar 16000 -ac 1 -c:a pcm_s16le audio.wav

接下來,編譯whisper.cpp並下載模型 (針對英文內容最佳化的基本模型約為140MB;「中型」也可處理其他語言,約為1.5GB),然後開始轉換,例如:

./main -m models/ggml-base.en.bin -f audio.wav -t 8 -pc -osrt

這將使用8個CPU核心,並在同一目錄中建立一個名為audio.wav.srt的SRT檔案。 在識別過程中,字詞會以顏色標示信心度(綠色=非常確定、紅色=非常不確定),因此您可以快速查看模型是否有問題。 如果較小的模型產生無法使用的輸出,您可以嘗試較大的模型,例如中型,這會較慢,但會產生較好的結果。

您也可以從其他語言翻譯,例如在選項中加入"-l fr -tr"就可以將法文音訊翻譯成英文。

將YouTube的翻譯字幕轉換為定時文本格式

SBV翻譯字幕

如果您從YouTube翻譯字幕匯出SBV格式,您可以使用ffmpeg將翻譯字幕檔案轉換成共享資源所使用的SRT(SubRip)格式。這項功能也解決了將YouTube字幕轉換到共享資源時常出現的重疊問題。

ffmpeg -fix_sub_duration -i input.sbv output.srt

XML翻譯字幕

 
投影片10-12描述了在YouTube Creator Studio製作翻譯字幕、下載SRT格式的 YouTube翻譯字幕、將字幕結果上傳至維基媒體共享資源的TimedText。

本節說明如何將 XML YouTube翻譯字幕轉換成 SubRip (srt) 格式,也就是 維基媒體共享資源所使用的 TimedText 字幕格式。

若是:

  • YouTube影片有某些語言的翻譯字幕 (例如:我製作的YouTube影片 有英語、俄語和利維卡累利阿語三種語言的翻譯字幕)、
  • 這個影片已上傳至維基媒體共享資源(例如,這個檔案),
  • 您要複製YouTube翻譯字幕到在共享資源上相同的視訊。

那麼:

  1. 下載XML格式的翻譯字幕,將YouTube視訊的ID放在URL結尾: http://video.google.com/timedtext?hl=en&lang=en&v=__youtube_video_ID__
  2. 安裝Ruby。
  3. 下載Ruby程式,將YouTube的XML格式視訊翻譯字幕轉換成SubRip格式。
  4. 執行此程式並將XML檔案轉換為.SRT檔案。
  5. 將.SRT檔案的內容複製然後貼到維基媒體共享資源上視訊的對應頁面。

一般提示

將對話內容以 srt 格式輸入,此為一個字幕區塊:

1
00:00:20,000 --> 00:00:24,400
這裏有字

此為二個字幕區塊:

1
00:00:20,000 --> 00:00:21,500
這裏還有字

2
00:00:21,500 --> 00:00:24,400
不只

若女孩說「這裏還有字」,就是在男人說「不只」的時候。寫下這裏還有字。不只會是個錯誤的寫法:

-這裏還有字
-不只

但若有足夠時間在各自區塊中顯示內容,應依此方式呈現:這裏還有字接著:不只

(字幕編輯器會將過短的區塊標示為紅色,屆時您便會知道需要將它們合併)

總之,每個發出新聲音的人物或事物都用短橫線表示:例如先是嬰兒哭、 然後是警鈴大作:

-[嬰兒哭聲]
-[警鈴大作]

但如果這些區塊相距很遠,則應該各自成為自己的區塊:[嬰兒哭聲]然後:[警鈴大作]

喧鬧聲等等

如您所見,我們使用方括號來描述聲音。 我們建議您使用方括號,因為現今方括號比較流行,但過去也有人使用圓括號,並將文字大寫,或在《老友记》的情況中: [2] 他們使用帶有空格和斜體的圓括號( clicking ) [3] 現在這種情況已經很少見了 -- 請不要這樣做。

在過去較常採用的另一種做法是:當需要標示人物姓名時使用名字: 詞語(譯註:阿貓:你好啊)、而使用括號標示聲音。 如今,括號被用於兩者。 有些人用圓括號表示名字、方括號表示聲音(或反過來) [4] [5] 為什麼?你為什麼要這麼做?這實在讓人很混亂。

角色

請逐字記錄每個角色的台詞。若角色說話過快,您可能需要摘要其內容,以便觀眾能及時閱讀。 若你無法在聲音沒有聲音的情況下說明說話者是誰,請在括號內標註姓名,並緊接其後寫下該角色所說的話。 [Elsa] 我辦不到! 若角色不在畫面中或透過電話說話,請將其姓名置於括號內,並將其發言以斜體標示。 若觀眾尚未知曉角色姓名,請試著避免直接透露姓名,可改為標註性別或職業;亦可採用簡化名稱如「Raymond Holt隊長」轉譯為RayHolt,務求字幕能及時顯示。

若真的需要添加角色名稱,請勿在每個字幕區塊都加上,僅需在角色首次發言時添加。像是這樣:

[角色名] 對話內容 或若為電話對話,則是[電話另一端的名字] 對話內容

後續的字幕區塊無需再標註人物姓名:

這裏是更多對話內容

添加字詞

正如你可以摘要角色所說的話,你也可以添加些詞語使其更通順。 例如在《摩登家庭》的〈當場抓包〉這一集中,克萊兒說:「怎麼回事?門鎖。真丟臉。」但字幕卻顯示為「這是什麼?門鎖。真丟臉。」請自行決定是否要添加字詞。

字幕區塊的間隙

若某個角色說「等等,我聽到什麼聲音」,字幕應顯示為「等等,我聽到什麼聲音」。 若某個角色說「等一下[1.5秒]我聽到什麼聲音。」,請將其字幕處理為:第一個字幕區塊顯示等一下,第二個字幕區塊顯示我聽到什麼聲音。但兩者之間不需留間隙,除非角色等待時間更長。

有時人們會說:「但是……這樣做效果會更好。」這句「……」之間會停頓片刻。 字幕應如此顯示:但這樣會更有效,並讓字幕區塊在你剛聽到「這」時出現在螢幕上。 這樣就不會破壞他們即將說的話。 若「但」與「這」之間間隔較長(例如超過0.6秒),請將「但」獨立成字幕區塊並持續顯示至「這」出現;緊接其後的區塊(無間隙直接接續)應顯示:這樣會更有效。

數字符號與首字母縮略字

由於全大寫字母用於標示事物,因此不應用於表示尖叫。 但我曾見過《老友记》用斜體字標示整段文字來「真正」強調吼叫的語氣。 [6] 那麼,這也是一種選擇,但我未曾再見過有人用過了。

當有人使用全大寫字母表示首字母縮略字(如NASA)或首字母縮寫詞(如ADHD)時,請保持全大寫格式。儘管如此,您仍無法判斷對方是否逐字母拼寫(首字母縮寫詞)或省略字母(首字母縮略字)。 《老友记》為解決此問題,採用在所有縮寫詞首字母間加圓點的方式處理。 [7]但這種做法現在已不常見了。 源自首字母縮略字的自創詞也應使用大寫字母,例如在《心碎高中》中,學生們參加名為「性知識輔導課(Sexual Literacy Tutorial)」的課程,但他們私下稱之為「蕩婦課(sluts)」。 即使原文說的是「sluts」,但字幕上寫的是「我要去SLT's」。 我不同意,我會把它改成「我要去SLUTS(蕩婦課)」。你高興就好。

若有人說「我付了十三美元」,請寫「我付了$13」;若對方表示「這花了我一萬美元,但如果我去找別人這可能就要二萬美元」,你可寫這花了我$10,000,但如果我去找別人這可能就要$20,000。這花了我$10,000,但如果我去找別人這可能就要20。 – 不確定哪個較好。

若某個角色談到維基百科,然後他說出「W P 冒號 mos」,請寫WP:MOS,因為這個你如何輸入的內容。 但若角色說出「斜線」(slash)這個字,情況就變得棘手了。 在《荒唐分局》的萬聖節特輯中,角色們說「我要成為我們物種裏最棒的刑警」,但字幕卻譯作「我要成為最棒的刑警/物種」,即使他們說的是「slash」。 在後期季數的字幕標註方式有所不同,若劇中出現「slash」一詞,字幕便會標註該字,建議採用新標註方式。

斜體

語氣不同的字應該用斜體,特別是當他們在暗示什麼的時候。 請遵循MOS:Italics來瞭解哪些類型的媒體應該使用斜體。 如果您需要使用斜體,但主角不在螢幕上,而且字句已經是斜體,只要將您想要放在斜體的字句,以非斜體中放在裏面即可(反向)。

音樂

主角所唱的歌詞應該用「♪」、Unicode U+9834、或Alt+266A字元來包圍。您也可以使用♫、Unicode U+9835、或Alt+266B,例如:

 1
 00:00:20,000 --> 00:00:24,400
 ♪ 帶我去看球賽 ♪(譯註:這是美國球場第七局上攻守交換時全場必唱名曲)

當主角開始在音樂上說話時,您應該停止為音樂加翻譯字幕,這樣觀眾才能讀出主角在說什麼。

標記

SRT格式唯一支援的標記是

  • 粗體 – <b> ... </b>
  • 斜體 – <i> ... </i>
  • 底線 – <u> ... </u>

提醒:不支援Wikicode格式。

国际化

翻譯字幕以視訊的原始語言轉錄到Timed Text檔案後,就可以依下列方式翻譯成其他語言:

  • 在編輯模式中開啟原始語言的 Timed Text 檔案,例如英文的TimedText:Elephants Dream.ogv.en.srt ,然後複製整個頁面。
  • 在位址列中,將「en」換成您所選擇的語言代碼,例如「fr」,然後將原始文字貼到新頁面中。
  • 觀看原始視訊,然後將文字翻譯成您的語言。
  • 儲存新頁面後,帶翻譯字幕的視訊應該會載入頁面;您可以檢視視訊以檢查翻譯字幕的時序。
  • 在討論頁 [[Category:Timed Text in Language Name|Language Name]] 加入分類連結。例如,請看一下TimedText talk:Elephants Dream.ogv.fr.srt

維基百科有關定時文字或翻譯字幕主題的條目

這些是與「若不是」Q844253:定時文字「就是」Q204028:翻譯字幕的條目。

链接

本節需要擴充

如何將隱藏字幕與多媒體檔案關聯?

一個可能的歸類方案是:

 [[:Category:File formats]] + [[:Category:Media types]]
                       |
               [[:Category:Timed Text]] + [[:Category:Legend in German]]
                                   | 
                           [[:Category:Timed Text in German]]
 
                                   + [[:Category:Legend in French]]
                                   | 
                           [[:Category:Timed Text in French]]
 
                                   + [[:Category:Legend in English]]
                                   | 
                           [[:Category:Timed Text in English]]

相關類別:Category:Files with closed captioning

参见

參考資料

  1. a b AI — 人工智慧
  2. 當我說那些替《老友记》加字幕的人們時,我是指那些在結尾寫著[字幕由字幕中心WGBH教育基金會]提供的劇集。
  3. 《老友记》的"The One With The Two Parties"一集
  4. 東京迪士尼海洋的視障人士無障礙設施 + Hello Kitty世界與史努比博物館!
  5. File:Fred Rogers testifies before the Senate Subcommittee on Communications, 1969.ogv
  6. 《老友记》的"The One With Phoebe's Birthday Dinner"一集
  7. 《老友记》的"The One with the Prom Video"一集