I have a video that I want to create subtitles for. Is there a program that can perform rudimentary speech-to-text in order to

  1. set the correct start/stop of each individual subtitle
  2. create rudimentary text subtitles (using some sort of speech-to-text)

I know about gnome-subtitles. However, it requires extensive effort to create those subtitles manually. You need to select yourself the start and stop for each sentence.

Youtube has the above features (creates rudimentary text subtitles at the correct timings, using speech-to-text). However I would rather not upload the videos to Youtube just to get my subtitles. Is it possible to do the subtitles efficiently in Ubuntu?

Update: I plan to use the .srt subtitles only, and do not need to hard code them on the videos. My biggest requirement is to have the program automatically find the start/stop for each sentence, so that I write the text in it.

Update #2: There is Speech-to-Text software for Linux, with the CMU Sphinx package. It is possible to use CMU Sphinx with a subtitle program according to http://sourceforge.net/projects/cmusphinx/forums/forum/5471/topic/3949891 In addition, one subtitle tool is aware of this CMU Sphinx feature, http://groups.google.com/group/universal-subtitles-testing/browse_thread/thread/613361ffb921b43b (web based tool), however there is no reference in the latest source code that they added CMU Sphinx. The quest continues to find a program that uses CMU Sphinx for rudimentary speech to text (which would set the correct timings as well), as Youtube already does.

  • there's an application called magpie that does something like this I think. – RolandiXor Jan 31 '11 at 4:11

I did not find a way to get the subtitle program to automatically add rudimentary subtitles, by analysing the voices in the video.

Therefore, the alternative that I use is

  1. Upload the video to Youtube (for example, privately) and use the in-build facility to create automatically rudimentary subtitles.


  1. Add the video to http://www.universalsubtitles.org/ and create manually the timeframes for each sentence, if the automated way in Youtube did not work, or sentences are mising.
  2. Use GNOME Subtitles (found in the Software Center) in order to clean up the subtitles and fix any timings.
  • 1
    This answer seems to be the most relevant to the question of automatically generating the subtitle files. – Garrett Mar 28 '14 at 0:26
  • It's surprising that YouTube can automatically generate (rough) subtitles, but there's apparently no program which can. – Garrett Mar 28 '14 at 1:21

I personally like Gnome Subtitles it is available in the repositories.

sudo apt-get install gnome-subtitles

I used Aegisub on Windows some years ago, and was really happy with it. Apparently it is available for Linux. It is pretty self explaining.

Aegisub only creates the subtitles file, e.g an .srt file. To combine the video and the subtitle to create a hard-coded subtitle you still need to use a second program.
On Windows I used VirtualDub, but it is not available for Linux. You can use VLC to do this on Linux:

Create your subs in Aegisub, saving it as usual as a .ass file.

Use VLC to add that subtitle track to your video. Subtitle -> Add subtitle file...

Configure the subtitle display style and settings so they display to your liking. Tools -> Preferences -> Subtitles/OSD

You can now watch the video to make sure the subs are displaying as you intended. For example I can check certain subs that I've specified in Aegisub to be displayed at the top of the screen rather than the bottom.

The output will be identical to how it looks now, so make sure all is good.

  1. Go to Media -> Convert/Save... (Ctrl + R).

  2. Under File Selection, add your video file. Tick "Use a subtitle file" and browse to your .ass sub file.

  3. Click the down arrow on the Convert/Save button and click Convert...(Alt + O).

  4. Under Settings, ensure the Convert option is ticked. Tick the Display the output option. Subs aren't added for some reason unless you tick this.

  5. Edit the profile so the video and audio settings are what you want. Under the subtitle tab, tick the Subtitles box, and use DVB subtitle codec. Make sure you tick 'Overlay subtitles on the video'. Press save.

  6. Enter a destination folder and filename in the Destination box.

  7. Press start.

Wait for it to be done, and that's it. The caveat with this method is that the encoding will happen in real-time with the video, so if you have a 2 hour video, it will take 2 hours. This is due to ticking the 'Display the output' box. But for some reason it only works when you tick this.

There are also other subtitle-editors.

I don't remember Aegisub having a functionality to automatically set beginning and end of a spoken sentence in the subtitles file. And I don't see a mention of such a function anywhere on the site. It is however with (key-combinations) pretty easy to set those times manually.

Is there even any program which has such a function (in any OS)?

  • I too used Aegsub on Windows, I didn't realize it was available for Linux.. thanks Pit :) ... Aegsub is a very competent subtitler... its default format is ASS (a evolution from SSA .. Sub-StationAlpha format) .. it handles Unicode and has special tools for preparing Karaoke text.... – Peter.O Jan 31 '11 at 11:56
  • 2
    Thanks for Aegisub. I am trying to figure out the workflow for this program. Can it scan the whole video and create the timings for each subtitle sentence? It does not appear to have a speech-to-text feature. – user4124 Jan 31 '11 at 12:01
  • You might want to read docs.aegisub.org/manual/…. – Pit Jan 31 '11 at 12:14
  • Aegisub is not generating subtitles automatically. We have to write subtitles using it. So probably this is not the solution for this question. – Harshitha Palihawadana Aug 3 '18 at 17:03
  • The questions was edited 3 years(!) after my answer. Original "What program to use to create subtitles for a video" did not mention anything from automatic or text-to-speech. – Pit Aug 5 '18 at 9:38


autosub is no longer mantained. Another fork with GUI called pyTranscriber can be used.

You can use this Command-line utility

Autosub is a utility for automatic speech recognition and subtitle generation. It takes a video or an audio file as input, performs voice activity detection to find speech regions, makes parallel requests to Google Web Speech API to generate transcriptions for those regions, (optionally) translates them to a different language, and finally saves the resulting subtitles to disk.


Python3 users, do this:

pip install git+https://github.com/BingLingGroup/autosub.git@alpha

Make sure you have ffmpeg installed.


Ok, found some tool which looks nice and similar to subtitle workshop - subtitle editor (apt-get install subtitleeditor).

Tried to compare it to Gnome Subtitles, subtitle editor looks more advance tool.


For KDE, a good subtitle editor is subtitlecomposer. Install it with the command

sudo apt-get install subtitlecomposer

or using the link subtitlecomposer Install subtitlecomposer


Inside Kdenlive video editor, in the top bar > project > subtitles > "Speech recognition" . You must first download the language pack from https://alphacephei.com/vosk/models , in kdenlive go to Settings > configure kdenlive > "Speech To Text".

Not the answer you're looking for? Browse other questions tagged or ask your own question.