A plain text file has no timing information, and an SRT file is almost entirely timing information. So converting one to the other is not really a file conversion. Except for LRC, which already contains timestamps and converts mechanically, you are adding timing that does not exist yet, and that means either syncing the text against audio or setting the times yourself.

This catches people out. You search for a TXT to SRT converter, upload your file, and get back subtitles where every line appears for two seconds regardless of how long it takes to say. Technically an SRT. Useless as subtitles.

This guide covers what each format actually needs, and the three routes that produce usable output.

Why text to SRT is not a normal conversion

An SRT entry is four parts: a number, a start and end time, the text, and a blank line.

1
00:00:04,000 --> 00:00:08,000
So the first thing to understand about subtitles

A text file gives you line three. Lines one and two have to come from somewhere else.

That somewhere is either the audio the text corresponds to, or your own judgement about pacing. There is no third option, and any tool claiming to convert text to SRT without one of those is guessing.

LRC is the exception, and it is why that conversion is genuinely automatic. More on it below.

How to convert a text file to SRT

  1. Check whether your file already contains timestamps. LRC and ITT do. TXT, DOC, DOCX and RTF do not.
  2. If it has timestamps, use a converter or a subtitle editor to remap them to SRT format.
  3. If it has no timestamps, open the text and the matching audio together in a subtitle editor and sync them.
  4. Save as .srt and check the first and last few entries against the audio.

LRC to SRT: a real conversion

LRC is a lyrics format, and it already carries timing. A line looks like this:

[00:12.34]So the first thing to understand

That is a start time and some text. Everything an SRT entry needs except an end time, and the end time can be inferred: each line runs until the next line begins.

So the conversion rule is mechanical:

  • The LRC timestamp becomes the SRT start time, reformatted from [mm:ss.xx] to HH:MM:SS,mmm. Note the comma, not a period.
  • The following line's timestamp becomes this entry's end time.
  • The final line has no following timestamp, so give it a sensible duration, typically three to five seconds.
  • Number the entries sequentially and separate them with blank lines.

Subtitle Edit handles this directly: open the .lrc, then File, Save as, and choose SubRip (.srt). Aegisub can also open LRC files and export SRT.

One thing to check afterwards: LRC files often have a block of metadata at the top, lines like [ar:Artist] and [ti:Title]. Some converters turn these into subtitle entries at 00:00. Delete them.

ITT to SRT

ITT is Apple's caption format, used by Final Cut Pro and iTunes. Like LRC it already has timing, so this is a genuine conversion rather than a re-timing job.

Subtitle Edit opens ITT and exports SRT directly. Expect to lose styling: ITT supports positioning, colour and italics that SRT has no equivalent for, so those attributes are dropped. The text and timing survive intact.

TXT, DOC, DOCX and RTF to SRT

None of these carry timing. You are not converting, you are timing a script. Three routes, in order of how good the result is.

Route 1: Sync against the audio

The best result, and less work than it sounds. Subtitle Edit has an auto-sync feature: give it your text file and the matching audio, and it aligns the text to the speech automatically. Open the audio, then File, Import, Plain text, then use Auto-translate or the sync tools to align.

This works well when the text is an accurate transcript of the audio. It degrades when the text is a script that the speaker paraphrased, because the aligner cannot match words that were never said.

Route 2: Time it manually in a subtitle editor

Load the audio in Subtitle Edit or Aegisub, paste your text, and set start and end points against the waveform. Slow, but it is the only route that gives exact control, and it is what you want for song lyrics, comedy timing, or anything where a subtitle landing a beat early is noticeable.

Route 3: Even distribution, the last resort

Some converters spread your lines evenly across a duration you specify. This produces a valid SRT that will drift out of sync within the first minute of anything with natural speech rhythm.

It is defensible in one case: as a starting skeleton you will then correct manually. It is not defensible as a finished file.

Preparing the text first

Whichever route, the output is better if the text is cleaned up before you start:

  • Save Word and RTF as plain text first. DOC, DOCX and RTF carry formatting that subtitle tools either ignore or mangle. File, Save as, Plain Text (.txt) in Word gives you a clean starting point.
  • Watch for smart quotes. Word converts straight quotes to curly ones. Most players handle them, some older ones do not, and they can encode badly if the file is not saved as UTF-8.
  • One subtitle per line. Subtitle tools generally treat each line as one entry. If your text is in paragraphs, break it into subtitle-length lines first, around 42 characters, before importing.
  • Remove speaker names if they are not meant to be shown. A script with "NARRATOR:" at the start of every line will put that in every subtitle.

The format is the easy part

Once you have timing, writing the file is trivial. The SRT format is plain text, and these are the details people get wrong:

SRT formatting rules that commonly cause files to fail loading
Rule Correct Common mistake
Millisecond separator 00:00:04,000 00:00:04.000 with a period
Arrow --> with a space either side -> or no spaces
Hours field Always present, 00: if under an hour Omitting it for short files
Numbering Sequential from 1, no gaps Gaps after deleting an entry
Blank lines One after every entry, including the last No trailing blank line
Encoding UTF-8 UTF-8 with BOM, or ANSI

If a file will not load, it is nearly always one of these. Open it in a plain text editor and check the first entry character by character.

When you have audio instead of a script

Everything above assumes you already have the text. If you have the recording and need both the text and the timing, skip this entirely: generate the SRT from the audio directly and you get accurate timing for free.

OmniveraLabs' SRT generator takes an MP3, WAV, M4A, MP4 or MOV and returns a timed .srt file. Our guide to converting audio to SRT covers that route in detail.

This is worth considering even if you already have a script. Generating from audio and then correcting the words against your script is often faster than timing the script by hand, because the timing is the slow part and the words are the quick part.


Working from a recording rather than a script? OmniveraLabs' free SRT generator produces a timed .srt file directly from audio or video, so the timing is handled for you.

Frequently asked questions

How do I convert an LRC file to SRT?

Open the .lrc in Subtitle Edit and save as SubRip (.srt). LRC already contains timestamps, so this is a genuine format conversion: each LRC timestamp becomes a start time and the following line's timestamp becomes the end time. Delete any metadata lines such as artist and title that convert into subtitle entries at 00:00.

Can I convert a TXT file to SRT?

Only by adding timing, because a text file contains none. Either sync the text against the matching audio in a subtitle editor, or set the times manually. Tools that distribute lines evenly across a duration produce a valid file that drifts out of sync quickly.

Why do my converted subtitles drift out of sync?

Because the converter spread the lines evenly rather than matching them to speech. Natural speech varies in pace, so even spacing accumulates error within the first minute. Syncing against the audio is the only way to fix it.

How do I convert a Word document to SRT?

Save the document as plain text first, using File then Save as then Plain Text, then time that text against the audio in a subtitle editor. Word formatting has no SRT equivalent and will either be dropped or corrupt the output.

What is the difference between LRC and SRT?

LRC is a lyrics format with a single start time per line and no end time, written as [mm:ss.xx]. SRT is a subtitle format with both a start and an end time per entry, written as HH:MM:SS,mmm. LRC converts to SRT cleanly because the end times can be inferred from the following line.

Can I convert an SRT back to plain text?

Yes, and this direction is easy since you are discarding information rather than inventing it. Open the .srt in a text editor and delete the sequence numbers and timecode lines, or use a find-and-replace with a regular expression to strip them in one pass.

Which free tool is best for converting text to SRT?

Subtitle Edit is the most capable free option for format conversion and syncing, though it is Windows-first. Aegisub is cross-platform and better for precise manual timing against a waveform. Both are free and open source.

← Back to the blog