Hello,
subs2srs is a small utility that allows you to create Anki import files based on your favorite foreign language movies and TV shows to aid in the language learning process. Supported platforms: Windows (using .Net), Linux/Mac (using Mono).
Download subs2srs v18.3 via SourceForge
Current Version: 18.3
Windows users will need to have the .Net Framework installed.
Linux/Mac users will need Mono and ffmpeg installed. See the readme file.
Have Fun!
cb4960
===========================================================
Usage File
===========================================================
subs2srs Usage
Table of Contents
- Description
- How to Use subs2srs
- Importing Into Anki
- Explanation of each option found in the user interface:
- Main Interface
- Advanced Subtitle Options
- Extract Audio from Video Tool
- Dueling Subtitles Tool
- Subtitle Style
===========================================================
Description
subs2srs is a small utility that allows you to create Anki import files based on your favorite foreign language movies and TV shows to aid in the language learning process.
This utility will parse through a subtitle file, extract the dialog and timing information, and then use that information to generate audio clips, snapshots, and video clips for each line of dialog. With all options enabled, a card will have this information generated for it (assume that it is a Japanese movie):
1) Textual line of Japanese dialog (taken from the Japanese subtitle file)
2) English translation (taken from the English subtitle file)
3) Audio clip
4) Snapshot
5) Video clip (You would not normally want to generate an audio clip AND a video clip, this is just an example).
6) Tag information (for Anki import).
7) Sequence marker (episode #, line #, and timing)
8) Context Info (previous and next lines)
Here is an example of an Anki flash card that can be generated with subs2srs:
Download the Toki wo Kakeru Shoujo sample deck.
Download other sample decks from the subs2srs decks wiki.
===========================================================
How to Use subs2srs
1) Copy the first set of subtitle files (for example, the Japanese subtitles) to a separate directory. This directory must not contain any other files (the same goes for the following steps). The files may be named anything you like as long as they can be sorted alphabetically in episode order (again, the same goes for the following steps).
2) Create an empty directory that will contain the files generated by subs2srs.
3) If you have matching subtitles (For example, the English subtitles), copy the second set of subtitle files into another directory.
4) If you want to generate snapshots or video clips, copy all of the video files into yet another directory.
5) Fill out any of the options that you may require.
6) Give your deck a name and then click the Go! button.
7) The following screenshot shows the required setup to produce snapshots, audio clips, and an Anki import file for the first 3 episodes of the Japanese television show Clannad. As you can see, 4 directories were created:
a. D:\subs2srs\Clannad\JapSubs - This is where the user puts the Japanese subtitles.
b. D:\subs2srs\Clannad\Out - This directory will contain all of the files generated by subs2srs.
c. D:\subs2srs\Clannad\EngSubs - This is where the user puts the English subtitles.
d. D:\subs2srs\Clannad\Video - This is where the user puts the Video files.
8) After subs2srs is finished processing, you will need to import the generated files into Anki. See the next section.
===========================================================
Importing Into Anki
After subs2srs generates the tab-separated (.tsv) Anki import file and media folder, just create a new Anki deck with the fields that you require:
1) Expression
2) Meaning
3) Audio clip
4) Snapshot
5) Video Clip
Or you can use the Anki deck template that is packaged with subs2srs (it is named subs2srs_template.anki).
Here is a simple guide demonstrating how to import the subs2srs generated files into Anki.
1) Copy the Anki deck template (subs2srs_template.anki) into the output folder.

2) Rename the Anki deck template to match the .media folder.

3) Double click the newly renamed .anki file to open it. Then click on the File | Import menu option.

4) Open the .tsv import file.

5) Open in the Import dialog, you should map each part of the import file to an Anki field. In the case of this example, the format of the import file is tag, sequence marker, audio clip, image, expression, and meaning. Click Import.
Note: The first value in the import file is always the tag and the second value in the import file is always the sequence marker.
===========================================================
The Main Interface
1) Menu:
File | New: Reset all fields to default values.
File | Open...: Restore previous interface state.
File | Save...: Save current state of the interface (the actor list will not be saved).
File | Exit: Exit subs2srs
Tools | Extract Audio from Video...: Show the "Extract Audio from Video" tool.
Tools | Dueling Subtitles Tool…: Show the “Dueling Subtitles” tool.
Help | Usage...: Show this file
Help | About...: Display information about subs2srs.
Note: The first value in the import file is always the tag and the second value in the import file is always the sequence marker.
2) Subs1: This is the directory containing the first set of subtitle files. For example, the Japanese subtitles for a movie. This directory must contain nothing but the subtitle files. The files must be in .srt, .ass, .ssa, or Vobsub (.idx/.sub) format. The files may be named anything you like as long as they can be sorted alphabetically in episode order.
Note: Any text-based subtitle file (.srt, .ass, .ssa) must have a UTF-8 or ASCII encoding.
3) [Subs1] Stream: The stream number to use with the Vobsub (.idx/.sub) subtitles in Subs1. This option is only enabled when there are Vobsub (.idx/.sub) files in Subs1.
Note: A single Vobsub (.idx/.sub) can have multiple streams (one for English, one for Japanese, etc.). Because of this, you can use the same directory for Subs1 and Subs2 but choose different streams for each.
4) Output: The directory where the generated files will be put. The following files and directories will be generated here:
/Media directory
All audio clips
All snapshots
All video clips
All text from a vobsub
Anki input file (a .tsv file - tab separated values)
5) Subs2: This is the directory containing the second set of subtitle files. For example, the English subtitles for a movie. This directory must contain nothing but the subtitle files. The files must be in .srt, .ass, .ssa, or Vobsub (.idx/.sub) format. The files may be named anything you like as long as they can be sorted alphabetically in episode order. This field is optional. Leave blank if you do not want or have a second set of subtitles.
Note 1 (important): Subs1 is compared against Subs2 and not the other way around.
This means that if a subtitle file from Subs1 contains 300 lines and a subtitle file from Subs2 contains 310 lines, the maximum number of lines that will be processed is 300 (the number of lines from Subs1).
Of course, this also means that if a subtitle file from Subs1 contains 310 lines and a subtitle file from Subs2 contains only 300 lines, then 310 lines will be processed and 10 of those lines will be mismatched. See following note.
Note 2: If the timing of the lines from Subs1 and Subs2 are not perfectly 1:1 (which is very likely), the closest match from Subs1 to Subs2 will be used. This will sometimes results in mismatches. To help alleviate such problems, make sure "Fix mismatched lines" is checked.
6) [Subs2] Stream: The stream number to use with the .idx/.sub subtitles in Subs2. This option is only enabled when there are Vobsub (.idx/.sub) files in Subs2.
7) Video: This is the directory containing the corresponding video files for each subtitle file. For example, one video file for each episode of a TV show. This directory must contain nothing but the video files tracks. Videos may use any format supported by ffmpeg (.avi, .mkv, etc.). The files may be named anything you like as long as they can be sorted alphabetically in episode order.
Note: Video filenames must not contain any Unicode characters.
8) Audio Stream: Some videos contain multiple audio streams/tracks. This options allows you to select which audio to use when making audio clips and video clips.
9) Use Timings From: Subtitles contain timing information that determines when they appear and for how long. You may select to use the timing information of Subs1 or Subs2. The timings are used for generating the snapshots, audio clips, and video clips. This option may be useful if one of your subtitles was specifically timed for the specific video source that you are using.
10) Span (h:mm:ss): Only process lines that start within the specified span of time. Only process lines that start within the specified span of time. Span is applied after the time shift is applied.
11) Pre-Time Shift: Shift Subs1 or Sub2 dialog timings before the lines are processed. This is the equivalent to using an external program (such as Aegisub) to apply a time shift to the Subs1 or Subs2 subtitle file. Use this to reduce the gap between the Subs1 and Subs2 timings. This will reduce errors when processing/matching subtitle lines.
12) Fix Mismatched Lines: Use this option when the Subs1 and Subs2 timings are not a near perfect 1:1 match. With this option enabled, subs2srs will attempt to fix mismatched lines between Subs1 and Subs2 by analyzing skipped lines and repeated lines. This should fix most mismatch errors, but may make a mistake every now and then. Overall, the benefits almost always outweigh the costs. This option works for all subtitle types (including Vobsub (idx/.sub)).
Note: You should disable this option if the Subs1 and Subs2 timings are a near perfect 1:1 match in order to avoid the handful of mistakes that might be produced.
13) Post-Time Shift: Shift timings forward or backward by the provided number of milliseconds after the lines have been processed. For example, setting the shift to -1000 will make all subtitles start (and end) 1 second sooner.
Note: This is an option of convenience for the user as the same result can be achieved by adjusting the Pre-Time Shift option for both Subs1 and Subs2.
14) More Options…: Show the advanced subtitle options dialog (see the below section for more information).
15) Generate Audio Clips: Enable/Disable the generation of audio clips.
16) Source: Select where to get the audio tracks from. You have two options here. You can either have subs2srs automatically extract the audio from the video files at the specified bitrate or you can provide a directory containing the corresponding audio tracks for each subtitle file. For example, one audio track for each episode of a TV show. This directory must contain nothing but the audio tracks. The files must be in .mp3 format. The files may be named anything you like as long as they can be sorted alphabetically in episode order.
Note 1: Automatic audio extraction has been successfully tested with audio tracks that are in the following formats: AC3, AAC, VORBIS, and MP3. Make sure that your AC3 file does not have DRM protection.
Note 2: If you choose to supply an audio directory, the filenames within must not contain any Unicode characters.
17) [Audio Clip] Pad Timings: Pad the start and end times of each line of dialog when generating an audio clip. For example, setting the start pad to 250 means that the audio clip will start 250 milliseconds sooner than it would normally. Setting the end pad to 300 means that the audio clip will end 300 milliseconds later than it would normally.
18) Generate Snapshots: Enable/Disable the generation of snapshots. All snapshots will be taken at the halfway point of the dialog.
19) [Snapshot] Dimensions: Width and height of the generated snapshots (in pixels). You do not need to compensate for the crop. subs2srs will automatically resize as appropriate in order to compensate for the crop.
Tip 1: Try to keep the aspect ratio the same as your video source. 1/3 of the original width and 1/3 of the original height will probably work best for you.
20) Crop (in pixels): A crop may be applied separately to the top, left, right, or bottom, of the snapshot. This might to useful for removing hard subbed subtitles. The crop is applied against the original resolution of the video and not the resized resolution. Enter 0 if you do not wish to crop.
21) Generate Video Clips: Enable/Disable the generation of video clips. All generated video clips use XviD for the video and MP3 for the audio. These are stuffed into an AVI container.
22) [Video Clip] Dimensions: Width and height of the generated video clips (in pixels). You do not need to compensate for the crop. subs2srs will automatically resize as appropriate in order to compensate for the crop.
Tip 1: Try to keep the aspect ratio the same as your video source. 1/3 of the original width and 1/3 of the original height will probably work best for you.
23) Crop (in pixels): A crop may be applied separately to the top, left, right, or bottom, of the video clip. This might to useful for removing hard subbed subtitles. The crop is applied against the original resolution of the video and not the resized resolution. Enter 0 if you do not wish to crop.
24) Bitrates: The bitrate to use for audio and video when generating video clips. Higher bitrates mean higher quality at the expense of larger file sizes.
25) [Video Clip] Pad Timings: Pad the start and end times of each line of dialog when generating a video clip. For example, setting the start pad to 250 means that the video clip will start 250 milliseconds sooner than it would normally. Setting the end pad to 300 means that the video clip will end 300 milliseconds later than it would normally.
26) Name of Deck: An arbitrary name to associate with your deck. It will be used in the filenames of the generated files. Any space character will be converted to an underscore.
Note 1: You cannot use the following characters (as Windows will not allow these in filenames): \ / : * ? " < > |
Note 2: You cannot use any Unicode characters.
27) First Episode: The first number to use when generating filenames, tags, and sequence markers. If you wanted to start at episode 3 (that is, the files for episode 1 and episode 2 are not in the provided directories), then put a 3 in this box.
28) Preview: Show the Preview dialog (see the below section for more information).
Note: Sorry, preview is not yet available with Linux/Mac
29) Go!: Start the processing the subtitles. subs2srs will warn you if you have made any input errors (a red icon will appear next to each field that contains an error). A progress bar will appear for each step (subtitle processing, Anki import file generation, audio clip generation, snapshot generation, and video clip generation). During some of these steps, a command prompt will appear that will inform you of progress.
===========================================================
The Advanced Subtitle Options Interface 
1) Open From File (Include): Open a file containing a semicolon separated list of words or phrases to use as the include list.
2) Include List: Enter a semicolon separated list of words or phrases here. In order to be processed, a line of dialog will have to contain at least one of these words or phrases. This can be helpful if you are trying to get examples of certain words that you are studying. Space characters will not be stripped out. Has no effect when using Vobsubs (.idx/.sub).
3) Open From File (Exclude): Open a file containing a semicolon separated list of words or phrases to use as the exclude list.
4) Exclude List: Enter a semicolon separated list of words or phrases here. In order to be processed, a line of dialog must not contain any of these words or phrases. Space characters will not be stripped out. Has no effect when using Vobsubs (.idx/.sub).
5) Remove Duplicates From: Remove duplicate lines of dialog from either Subs1 or Subs2. When enabled, only the first instance of a line will be used. Has no effect when using Vobsubs (.idx/.sub).
6) Exclude lines with fewer than # characters: You may set a minimum character length for a line of dialog. Any line not meeting the minimum character length will not be processed. The purpose is to help eliminate easy/trivial lines. This feature may be Enabled/Disabled. Has no effect when using Vobsubs (.idx/.sub).
7) Exclude lines shorter than # milliseconds: You may set a minimum length for a line in milliseconds. Any line whose timing not meeting the minimum number of milliseconds will not be processed.
8) Exclude lines longer than # milliseconds: You may set a maximum length for a line in milliseconds. Any line whose timing exceeds the maximum number of milliseconds will not be processed.
1) Number of lines leading up to a line of dialog: The number of lines before a line of dialog to attach to a fact.
2) Include audio clip/snapshot/video clip information: You may choose which information from the leading lines that you would like to appear in the .tsv import file. For example, if would only like to import the audio clip information from a leading lines, than check only that option. This feature makes the .tsv import file less cluttered with information that is not important to you and makes it easier to import into Anki.
Note: The Subs1 text and Subs2 text of the leading lines is always placed into the .tsv file.
3) Number of lines trailing a line of dialog: The number of lines after a line of dialog to attach to a fact.
4) Include audio clip/snapshot/video clip information: You may choose which information from the trailing lines that you would like to appear in the .tsv import file. For example, if would only like to import the audio clip information from a trailing lines, than check only that option. This feature makes the .tsv import file less cluttered with information that is not important to you and makes it easier to import into Anki.
Note: The Subs1 text and Subs2 text of the trailing lines is always placed into the .tsv file.
1) Use Actors From: Use the actor/character names found in the .ass/.ssa files of either the Subs1 or Subs2 directory.
2) Check Actors: Scan the .ass/.ssa files of the selected subtitle directory for actor/character names. If any names are found, they will be listed to the right. Since the actor/character name field is optional, not all .ass/.ssa files will have actor/character names associated with each line of dialog.
3) Available Actors: The list of available actor/character names. Only lines that are associated with one of the selected names will be processed. For example, if you only want to hear the lines of the character "Makoto", deselect all other names and then select "Makoto" from the list. If no actors are selected, processing will take place as normal.
1) Only process lines containing kanji: If selected, only lines containing one or more kanji will be processed.
/url]
1) Enable Custom Colors: Use custom colors when processing images extracted from Vobsub (.idx/.sub) files.
2) Colors: Select a color to use for each part of the subtitle.
3) Transparent: Select whether or not a part of the subtitle should be transparent. The color is ignored when this is enabled.
4) Reset: Reset the colors and transparency settings to their defaults.
===========================================================
The Preview Interface 
Sorry, preview is not yet available with Linux/Mac
Generate a preview of the items that will be output by subs2srs.
Note: In the interest of keeping processing times quick, the preview will only be generated for the first episode.
1) Subs1/Subs2 List: Displays each Subs1 line and its corresponding Subs2 line. This is the list that will actually be processed by subs2srs and it is affected by various settings (example: the prune settings in the Advanced Subtitle Options interface or the Span setting in the Main interface). This is a good place to make sure that subs2srs is matching up the lines correctly. If the lines aren’t matching very well, try adjusting the “Pre-Time Shift” in the Main interface and click the “Regenerate Preview” button to update the preview. Select a line from the list in order to preview its corresponding audio clip and snapshot (see below).
Note: Because the snapshot preview must be generated, expect a short delay when selecting a line.
2) Snapshot Preview: A thumbnail preview of the snapshot will be generated for this line. This is good place to check the Crop setting from the Generate Snapshots section of the Main interface. The thumbnail preview will scale to preserve the correct aspect ratio. Click on the thumbnail preview to display the un-scaled, full-size snapshot based on the Dimensions setting.
3) Subs1 Text: The text of Subs1. For Vobsub (.idx/.sub) subtitles, the actual Vobsub image will be displayed here (unlike in the list). This is a good place to test custom Vobsub colors.
Note: Edits to the text will not be saved.
4) Subs2 Text: The text of Subs2. For Vobsub (.idx/.sub) subtitles, the actual Vobsub image will be displayed here (unlike in the list). This is a good place to test custom Vobsub colors.
Note: Edits to the text will not be saved.
5) Preview Audio: Play the audio clip associated with the lines. This is a good place to make sure that your Post-Time Shift , Pad Timings, and Bitrate settings are acceptable.
Note: Expect a short delay the first time you press the button after selecting a line. The audio is being extracted/cut during this delay. Subsequent clicks should be instantaneous until a new line is selected.
6) Regenerate Preview: Each time you finish making updates to the settings (for example, to change the pad for the audio timings) you should click this button to update the preview with the latest settings.
===========================================================
The Extract Audio from Video Tool Interface 
1) Video: This is the directory containing the video files to extract the audio tracks from.
Note 1: The filenames within must not contain any Unicode characters.
Note 2: Technically, you can also input a directory containing audio files here.
2) Output: The directory where the extracted .mp3 files will be placed.
3) Name: An arbitrary name to associate with your video. It will be used in the filenames of the generated files. Any space character will be converted to an underscore.
Note 1: You cannot use the following characters (as Windows will not allow these in filenames): \ / : * ? " < > |
Note 2: You cannot use any Unicode characters.
4) First Enumeration: The first number to use when generating filenames. If you wanted to start at episode 3 (that is, the video files for episode 1 and episode 2 are not in the provided directories), then put a 3 in this box.
5) Format: You have two options here: you can either extract the entire audio track as a single clip or you can break the audio track into multiple clips. If you choose the latter, can must specify the length of each clip (in h:mm:ss) format.
6) Bitrate: The bitrate of the extracted mp3 files. Higher bitrates mean higher quality at the expense of larger file sizes
7) Extract Audio: Start the audio extraction process.
Note 1: Audio extraction has been successfully tested with audio tracks that are in the following formats: AC3, AAC, VORBIS, and MP3. Make sure that your AC3 file does not have DRM protection.
===========================================================
The Dueling Subtitles Tool Interface
Use this tool to create subtitle files (in .ass format) that will simultaneously display a line from Subs1 and its corresponding line from Subs2. Here are some screenshots that demonstrate the Dueling Subtitles feature:
This screenshot shows the default style settings: 
This screenshot shows Subs2 displayed at the top of the screen with smaller font and outlined in light brown with no shadow:
These subtitles can be used in any video player that accepts .ass subtitle files. In order to display the subtitles, it is usually as simple as renaming the subtitles to match the name of the video file and then opening the video file or finding your player's "open subtitles" feature. This feature might be useful for those who are hesitant about viewing only the foreign language subtitles for fear that they might not get as much enjoyment out of it. And for those who want to instantly check their listening comprehension.
1) Subs1: This is the directory containing the first set of subtitle files. For example, the Japanese subtitles for a movie. This directory must contain nothing but the subtitle files. The files must be in .srt, .ass, or .ssa format. The files may be named anything you like as long as they can be sorted alphabetically in episode order.
Note: The subtitles in the directory must have a UTF-8 or ASCII encoding.
2) Subs2: This is the directory containing the second set of subtitle files. For example, the English subtitles for a movie. This directory must contain nothing but the subtitle files. The files must be in .srt, .ass, or .ssa format. The files may be named anything you like as long as they can be sorted alphabetically in episode order.
Note 1 (important): Subs1 is compared against Subs2 and not the other way around.
This means that if a subtitle file from Subs1 contains 300 lines and a subtitle file from Subs2 contains 310 lines, the maximum number of lines that will be processed is 300 (the number of lines from Subs1).
Of course, this also means that if a subtitle file from Subs1 contains 310 lines and a subtitle file from Subs2 contains only 300 lines, then 310 lines will be processed and 10 of those lines will be mismatched. See following note.
Note 2: If the timing of the lines from Subs1 and Subs2 are not perfectly 1:1 (which is very likely), the closest match from Subs1 to Subs2 will be used. This will sometimes results in mismatches. To help alleviate such problems, make sure "Fix mismatched lines" is checked.
3) Output: The directory where the dueling subtitles will be output to.
4) Name of Deck: An arbitrary name to associate with your deck. It will be used in the filenames of the generated files. Any space character will be converted to an underscores.
Note: You cannot use the following characters (as Windows will not allow these in filenames): \ / : * ? " < > |
5) First Episode: The first number to use when generating filenames. If you wanted to start at episode 3 (that is, the files for episode 1 and episode 2 are not in the provided directories), then put a 3 in this box.
6) Use Timings From: Subtitles contain timing information that determines when they appear and for how long. You may select to use the timing information of Subs1 or Subs2. The timings are used for combining lines from Subs1 and Subs2. This option may be useful if one of your subtitles was specifically timed for the specific video source that you are using.
7) Pre-Time Shift: Shift Subs1 or Sub2 dialog timings before the lines are processed. This is the equivalent to using an external program (such as Aegisub) to apply a time shift to the Subs1 or Subs2 subtitle file. Use this to reduce the gap between the Subs1 and Subs2 timings. This will reduce errors when processing/matching subtitle lines.
8) Fix Mismatched Lines: Use this option when the Subs1 and Subs2 timings are not a near perfect 1:1 match. With this option enabled, subs2srs will attempt to fix mismatched lines between Subs1 and Subs2 by analyzing skipped lines and repeated lines. This should fix most mismatch errors, but may make a mistake every now and then. Overall, the benefits almost always outweigh the costs.
Note: You should disable this option if the Subs1 and Subs2 timings are a near perfect 1:1 match in order to avoid the handful of mistakes that might be produced.
9) Post-Time Shift: Shift timings forward or backward by the provided number of milliseconds after the lines have been processed. For example, setting the shift to -1000 will make all subtitles start (and end) 1 second sooner.
Note: This is an option of convenience for the user as the same result can be achieved by adjusting the Pre-Time Shift option for both Subs1 and Subs2.
10) Subs1 Style: Adjust the styling of a Dueling Subtitle's Subs1 lines.
11) Subs2 Style: Adjust the styling of a Dueling Subtitles's Subs2 lines.
12) Alignment Priority: When Subs1 and Subs2 both have the same alignment style, this option determines which one gets priority. For example: If both Subs1 and Subs2 are aligned to the bottom of the screen, set this value to "Subs2" to force Subs2 to be drawn below Subs1.
13) Create a dueling subtitle every X lines: Determine the sequence at which a line from Subs2 is displayed simultaneously with the line from Subs1. Setting this value greater than one acts as a sort of "hint". For example: Set this value to 3 to display the corresponding line from Subs2 every 3 subtitle lines. The sequence would be:
1: Subs1 Line
2: Subs1 Line
3: Subs1 Line + Subs2 Line
4: Subs1 Line
5: Subs1 Line
6: Subs1 Line + Subs2 Line
Etc…
14) Also generate quick reference .txt file: In addition to the subtitle file, also generate a quick reference .txt file with just the Subs1 and Subs2 text. Can be useful for following the dialog and looking up unknown words.
15) Create the Dueling subtitles!: Process each of the Subs1 and Subs2 subtitles files and combine them to create corresponding Dueling Subtitles in .ass format.
===========================================================
The Subtitle Style Interface
This interface allows you to modify the Subs1 or Subs2 subtitle style when generating Dueling Subtitles. It should be somewhat familiar to those who use Aegisub.
1) Font: Launches the standard font chooser dialog which allows you to choose the font and its size. It also allows you to select the bold, italic, underline, and strikeout settings.
2) Primary Color: Select the primary color and its opacity. Opacity ranges from 0 (opaque) to 255 (transparent). This is the color that a subtitle will normally appear in.
3) Secondary Color: Select the secondary color and its opacity. Opacity ranges from 0 (opaque) to 255 (transparent). This color may be used instead of the Primary color when a subtitle is automatically shifted to prevent an onscreen collision, to distinguish the different subtitles.
Note: In practice, I don't think that I have every seen the Secondary color used by a video player.
4) Outline Color: Select the outline color and its opacity. Opacity ranges from 0 (opaque) to 255 (transparent).
5) Shadow Color: Select the shadow color and its opacity. Opacity ranges from 0 (opaque) to 255 (transparent).
6) Outline: The width (in pixels) of the outline that surrounds the text.
7) Shadow: The depth (in pixels) of the shadow behind the text.
8) Opaque box: Choose to display a box behind the subtitles.
9) Alignment: Choose how text is aligned on the screen.
10) Left Margin: Define the left margin in pixels. It is the distance from the left-hand edge of the screen. The three onscreen margins define areas in which the subtitle text will be displayed.
11) Right Margin: Define the right margin in pixels. It is the distance from the right-hand edge of the screen. The three onscreen margins define areas in which the subtitle text will be displayed.
12) Vertical Margin: Define the vertical margin in pixels. It is the distance from the top/bottom edge of the screen. The three onscreen margins define areas in which the subtitle text will be displayed.
13) Scale X: Percent to modify the width of the text.
14) Scale Y: Percent to modify the height of the text.
15) Rotation: Number of degrees to rotate the text. The origin of the rotation is defined by the alignment.
16) Spacing: Extra space between characters (in pixels).
17) Encoding: This specifies the font character set or encoding and on multi-lingual Windows installations it provides access to characters used in multiple than one language. You can probably ignore this setting.
Last edited by cb4960 (February 06, 2:09 pm)
Well done, cb4960! I must say this program looks wonderful! I haven't experimented much with putting audio/pictures/etc into anki yet, but this program makes me want to try it!
I've seen a ton of shows and movies that would have some excellent lines to know, but I would usually just add them as plain text with no other accompanying items (besides a reference to where it came from). However, this seems like a much better way to do that, and quite simple too!
Thanks a lot! As soon as I get a chance (not soon) I'll try it out, but I'm sure someone will beat me to that.
Very nicely done, it's too bad Japanese subs are still hard to come by.
I'll certainly be using this where I can.
I'd love to see a linux port of this. Cool stuff.
stoked wrote:
I'd love to see a linux port of this. Cool stuff.
ooo, yes, I forgot to say that. A linux port would be amazing.
Thanks! This looks a lot easier.
If you can, just virtualize windows with vmware or virtualbox... It works incredibly well
I'm going to try that program very soon
Thanks a lot for make it simpler for mere mortals ![]()
cb4960 wrote:
Hello,
I have created a new version of subs2srs. See the usage file (attached below) to get an idea of what you can do with this utility.
This is fully awesome! Will you ever make the source code available ?? [An interested developer]
cb4960, this is just too awesome. seriously, my hats off to you, pal.
Just want to say I'm 100 cards into this deck already and the file works brilliantly. It's such a great tool, with maybe the best potential of any I've used. It provides natural native sound files, with full japanese subs so you can look up words/grammar you don't know, and offered in sentence by sentence chunks that you can SRS. It's a goldmine. Today I rewatched the first 15 minutes of the anime and all the little bits I couldn't figure out before are clear as day. Awesome thanks. Unfortunately I work on a mac, so I'll have to track down a sympathetic friend to create other decks with this program and share them. Many many thanks.
Last edited by timcampbell (2009 February 01, 2:07 am)
GD! Thats cool!
This is just amazing. You are very talented to create such an application and very generous to share it with others.
First great respect and thanks for this programm! I have a problem/question concerning snapshots:
I donwloaded avisynth 2.5. Chose the option to create snapshots.
subs2srs created audio-files and a text file, however the snapshots were not created (the media-directory did not include them).
I made a snapshot of the snapshotripping process and it reads like this:
Source :
*Filename:"d:\....avs"
*Fourcc: None (RGB32)
*Frames: 240
*Resolution: 1480x342
*Frame rate: 24.000 FPS
Compressor:
* No Recompression
Destination:
*Format: Null
I did not change the standard framerate and other settings in subs2srs.
Also while the sub-file I have seems pretty consinstent in timing, I found out, that the subs are a little bit behind the sound so 你好 only produces 好 sound-wise. So maybe an adjusting option would be good to have. (and the people who sub stuff probably do so at their own definition on what is "correct" timing)
Last edited by HerrPetersen (2009 February 01, 6:00 am)
Thanks m8t, with the sound too? this will be a great help, I'm far from using it, but I already downloaded it and bookmarked the page for instructions, maybe there will be a better version by the time I need it, but its better this way, thanks a bunch!
Won't the import files be quite enormous? I mean, just look at a random subtitle file, it's generally several hundred lines of dialogue. Getting through just one movie would probably take you quite a while... and most of the dialogue will probably be stuff you allready understand.
While the program is really cool, I'm wondering if it's such a good idea to use it. To bring up Khazu, he usually says that you need to learn 10 000 sentences as fast as possible, make them count by picking out the ones you really need. Taking every line in a whole movie isn't really picking the important ones.
Agree with Tobberoth - but still if there was a "input editor" of some kind you could skim through the lines and only check/uncheck those that you think are important/(not important) for you.
The possibilities are still huge!
Tobberoth wrote:
Won't the import files be quite enormous? I mean, just look at a random subtitle file, it's generally several hundred lines of dialogue. Getting through just one movie would probably take you quite a while... and most of the dialogue will probably be stuff you allready understand.
While the program is really cool, I'm wondering if it's such a good idea to use it. To bring up Khazu, he usually says that you need to learn 10 000 sentences as fast as possible, make them count by picking out the ones you really need. Taking every line in a whole movie isn't really picking the important ones.
This software makes it easier to develop decks based both on what individuals want and what they need, based on analyses and manipulation of the data once it's collected. Gives us more control, allowing for diverse, distributable, user-specific corpora. There's all kinds of possibilities with this, I'm sure people that are more database/list savvy than I can offer and develop more concrete examples.
And I mean, in addition to the interface/filtering stuff in regards to culling excess words/sentences from these specific decks. (I guess you could do some kind of check against import files you already have, eliminating redundant lines?) Just imagine, for example, analyzing the decks created by different users, cross-referencing them based on different taxonomies/genres/themes (to create, for example, frequency lists), and creating condensed decks from those that a person can select depending on whatever a person wants or needs to study.
Is there someplace to use as a 'headquarters' now that ajatt.pseudosphere is gone? Bad timing with that.
Last edited by nest0r (2009 February 01, 7:15 am)
nest0r wrote:
Is there someplace to use as a 'headquarters' now that ajatt.pseudosphere is gone? Bad timing with that.
I wonder about the copyright issues with distributing/sharing the decks. ajatt.pseudosphere gave access to sentences from books only to those with proof of ownership but I remember they freely posted links to subs - what would be acceptable for distributing the decks?
Just from looking at this and seeing website like reading tutor (http://language.tiu.ac.jp/index_e.html) and iKnow, it's easy to see what can happen:
User creates file from a movie (sadly, all sorts of copyright issues, but bear with me). User uploads files onto iKnow so it has image, audio, sentence, and translation (maybe in multiple languages). iKnow parses inputted sentences so now any and all words used in the movie are connected to the files. An upgraded version of iKnow lets you automatically load all sentences from that file with new words not yet studied by you (I say new version as this is not possible yet).
Users that don't like using iKnow then use Anki to download that generated list so now they have only the sentences from the movie file that are words they have not learned.
Yeah, a good ways in the future. However, looking at upgrades to iKnow, Anki, Reading Tutor, and this recent program, it's easy to see there's much that can be done to streamline the self study process.
Tobberoth,
what you say is true, but it's still much faster to remove the cards you don't need than manually adding the ones you need, isn't it?
So how would one go about ripping subtitles from a movie into a subtitle file that can be put to good use with this program? If OCR is the only way, I think I'll pass (had bad experiences with using OCR back in the day).
Kreva, there is one option but you may not like it: Create a Hard sub video with Japanese Kanji (I use Xilisoft DVD to DivX to make mine). Then subs2srs with an English sub file for appropriate parsing.
Thing is though, it's going to suck as the English sub timing is not going to match up well with the Japanese. Like I said, it's an an option you may not like.
The only other option is just use sub-files that exist like from drama addict forums. In truth, a one hour show should net you 700 "cards", which should last you a bit. Granted, ever new show you add should have less and less useful cards as in new vocabulary or phrases.
tobberoth, i set up a shortcut in anki to suspend (or delete) a fact, so as i'm learning new cards i just hit that key every time i completely understand a line. takes like 2 seconds each time and i basically get to watch the movie as i'm doing it (they're presented in order).
Tobberoth wrote:
Won't the import files be quite enormous? I mean, just look at a random subtitle file, it's generally several hundred lines of dialogue. Getting through just one movie would probably take you quite a while... and most of the dialogue will probably be stuff you allready understand.
While the program is really cool, I'm wondering if it's such a good idea to use it. To bring up Khazu, he usually says that you need to learn 10 000 sentences as fast as possible, make them count by picking out the ones you really need. Taking every line in a whole movie isn't really picking the important ones.
I just suspend the cards I don't need. It's much faster this way than cutting and pasting a thousand sound files into Anki, which is a great way to learn yet very time consuming - I've tried it.
Without hijacking the thread for more Khatz commentary (he has his own thread going hot and heavy right now) he also said, and correctly I believe, that you need to enjoy what you're learning. I love this movie, and I'm having a great time working through the sound files. For other people, that might not be so. OK, find a movie you love. Or don't do it at all. Doesn't matter to me.
Also, for shadowing purposes, movie and TV clips have the most natural Japanese, and using sound files in anki makes this really easy. I don't shadow the main character, since she's a teenage girl, but her guy friends are fair game. It's much better than stopping and rewinding a CD, and the voices are very natural in this movie.
Yes, suspending cards is easy enough, though I do like the idea of integrating a level checker with some kind of overarching user database. I just keep thinking about someone who's learning Japanese, and is in a mode where they want to learn Japanese 'in general', but want, say, real-world 'business Japanese' lessons, or to know enough Japanese to watch plenty of current anime of any specific type (scifi, slice of life, shounen, whatever), and can just check out a file made from the most frequent words of 50 different sources of that type, eliminating redundancies with a level checker, et cetera.
Also, I've actually got a large number of redundant cards from iKnow, but I keep them for the speaking practice--I either suspend a card or just grade it on how well I can accurately reproduce the basic pitch and flow. It really helps with my 'ear training' and development of subvocal/articulatory rehearsal (and speaking ;p).
I guess someone needs to hijack a Somalian pirate ship and set up wifi there to resolve our copyright dilemma. Our motto: "Avast ye landlubbers, no int'l copyright laws be keelhaulin' arrr language-learning, yarrr! Yo ho ho, どうもありがとう!"
Last edited by nest0r (2009 February 01, 4:00 pm)
