Remove Speaker Labels from Subtitles
Or paste subtitle text
Options
One box, five choices, and each choice has a page of its own. Brackets removes paired [square] asides, parentheses removes paired (round) ones, speaker removes an all-capitals name and the colon after it at the start of a line, and music removes the note symbols. All four at once is the choice called All. Every one of them edits the words themselves rather than the styling, so the line gets shorter — and unlike the styling pages, an annotation that was removed cannot be put back by the tool that reads the result. This page fills the box in with the choice its title names and lists no other.
Which frame rate the timings are counted in. On the format pages this is what MicroDVD needs, because it stores timing as frame numbers. On the frame rate pages it is the rate the file was timed against — the version the subtitles were made for — and the page's second box takes the rate of the video you are going to use them with. 23.976, 24, 25, 29.97, 30, 50, 59.94 and 60 are the common ones. Getting it wrong shifts the whole timeline, and on the frame rate pages it shifts it by a ratio rather than by a fixed amount.
This page removes the speaker label at the start of a line: the all-capitals name and the colon after it, along with the space that followed. `BOB: I heard that.` comes out as `I heard that.`, and `- JANE DOE: So did I.` as `So did I.` Nothing else in the cue moves — not the timecodes, not the numbering, not the words.
The label is matched by its shape rather than against a list of names. A run of capitals with no lowercase letters in it, at the very start of a line, followed by a colon, is a label. `BOB:`, `JANE DOE:`, `O'BRIEN:`, `BOB (V.O.):` and `- MARIA:` all qualify. `He said: hello` does not, because the letters after the capital are lowercase — that is dialogue with a colon in it, and taking it would mean eating a line of the film. `I:` does not qualify either: one capital letter is not enough evidence, and a page that took it would be guessing on the commonest pronoun in any script.
Speaker labels turn up for two different reasons and this page serves both. In a hearing-impaired track they mark a change of speaker, which a viewer who cannot hear the voices needs to follow the scene. In a bilingual file they are often the only thing separating the two languages sharing a line. Same shape, same edit.
A label for a line of dialogue that is split across two cues is caught on each cue independently, so both halves lose it. Files read for what they are rather than for their extension, so the three ways this is written — plain text in SRT, a Dialogue column in ASS, a `<v Bob>` tag in WebVTT — all land in the same place. Nothing is uploaded, and every format the site reads is accepted.
Examples
A bare name and a name behind a dash
Input
1
00:00:01,000 --> 00:00:03,000
BOB: I heard that.
2
00:00:04,000 --> 00:00:06,000
- JANE DOE: So did I.
Output
1
00:00:01,000 --> 00:00:03,000
I heard that.
2
00:00:04,000 --> 00:00:06,000
So did I.
Two of the shapes a label takes in a real file: a name on its own, and a name behind the dash that marks a change of speaker. Both go, and so does the colon with the space after it, which is what keeps the line from starting with a stray space. What is left is the dialogue as a viewer who can hear the scene would read it.
Colons in dialogue that are left alone
Input
1
00:00:01,000 --> 00:00:03,000
He said: hello
2
00:00:04,000 --> 00:00:06,000
I: am not a label
Output
1
00:00:01,000 --> 00:00:03,000
He said: hello
2
00:00:04,000 --> 00:00:06,000
I: am not a label
Both cues come back byte for byte. The first colon follows a lowercase word, so it is inside the sentence rather than in front of it. The second follows a single capital letter, and one letter is not enough to call something a name — a page that treated it as one would be deleting the pronoun every script is full of.
A label in the Dialogue column of an ASS file
Input
[Script Info]
Title: speaker
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic
Style: Default,Arial,20,&H00FFFFFF,0,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,BOB: I heard that.
Output
[Script Info]
Title: speaker
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic
Style: Default,Arial,20,&H00FFFFFF,0,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,I heard that.
In ASS the text is the last of ten comma-separated columns on the Dialogue line, and the label sits inside that column. Everything around it survives: the script header, the style table, the column layout and the event timing. It is the same edit as the SRT example, reached through a different file format.
Frequently asked questions
How does the page know which words are a speaker label?
By their shape: a run of capital letters, digits, spaces and punctuation with no lowercase letter in it, at the start of a line, ending in a colon. That covers `BOB:`, `JANE DOE:`, `O'BRIEN:` and `BOB (V.O.):`, and it rules out `He said:` and `I:`. The rule is written as the absence of lowercase letters rather than as a list of names, so it still works on characters and abbreviations it has never seen.
Will it remove a colon that is part of the dialogue?
No. `He said: hello` keeps its colon, because the capital at the start is followed by lowercase letters and the run therefore never looks like a name. That distinction is the whole reason the capitals requirement exists: colons are common in dialogue, and a page that matched any short word before a colon would take some of them and leave others, depending on nothing you could predict.
What happens to the dash in front of a speaker label?
It goes with the label. A line written `- JANE DOE: So did I.` comes out as `So did I.` with no leading dash, because the dash and the name are the same markup — it is the pair that marks a change of speaker in a hearing-impaired track. A dash that opens a line without a name after it is left alone, since there is no label to pair it with.
Does removing speaker labels change the timing of the file?
No. Only the text inside each cue is edited, so every start and end stays as the file wrote it and the cue numbering is the file's own. Bold and italic ranges that sat on the label itself are dropped and counted in the report, since there is no text left for them to cover; ranges on the dialogue after the label move with it and survive.
Why would anyone want the speaker labels removed?
Because a hearing-impaired track and a plain subtitle track are different products. The label is there so a viewer who cannot hear the voices can tell who is talking; once the file is being used as ordinary subtitles, or handed to a viewer who can hear the scene, the names are clutter at the start of every second line. Some broadcasters also forbid them outright, so the removal is a delivery requirement rather than a preference.
Which formats can the speaker labels be removed from?
All twelve the site reads: SRT, WebVTT, ASS, SSA, SBV, SAMI, LRC, MicroDVD, TTML, JSON, plain text and CSV. A WebVTT file that marks its speaker with a `<v Bob>` tag is read for its text, and the tag is left where it is — sweeping markup like that away is the job of the HTML tag page rather than this one.