Форматы результата¶
Результат распознавания сохраняется в семи форматах. Все файлы - в UTF-8 с переводами строк \n. Говорящий - «Канал N» для каналов стереозаписи; если каналы сведены в один (--mono, монозапись или одинаковые каналы), говорящего нет.
| Формат | Для чего |
|---|---|
txt |
Чтение текста: фрагмент на строку |
json |
Программы: сведения о записи и фрагменты |
jsonl |
Программы и потоки: фрагмент на строку, файлы можно дописывать один к другому |
srt |
Субтитры для видеоплееров и редакторов |
vtt |
Субтитры WebVTT для браузеров |
ass |
Субтитры Aegisub с говорящим в поле Name |
csv |
Таблицы и аналитика: Excel, pandas |
Примеры ниже - результат stt-ru transcribe call.wav для стереозаписи разговора.
TXT¶
Канал 1: Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии.
Канал 0: Угу
Канал 0: Угу
Канал 1: Я в свою очередь с вами прощаюсь. Всего доброго, до свидания.
Канал 0: До свидания.
JSON¶
Объект с полями source (имя файла), model, duration (длительность записи, с), channels (число распознанных каналов) и segments. У фрагмента - start и end в секундах, channel, speaker и text; у сведенных каналов channel и speaker равны null.
{
"source": "call.wav",
"model": "gigaam-v3-e2e-rnnt",
"duration": 15.751,
"channels": 2,
"segments": [
{
"start": 0.994,
"end": 9.054,
"channel": 1,
"speaker": "Канал 1",
"text": "Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии."
},
{
"start": 3.49,
"end": 3.934,
"channel": 0,
"speaker": "Канал 0",
"text": "Угу"
}
]
}
JSON Lines¶
Фрагмент на строку с именем файла в source: результаты нескольких файлов можно собирать в один файл (так работает --summary out/all.jsonl).
{"source": "call.wav", "start": 0.994, "end": 9.054, "channel": 1, "speaker": "Канал 1", "text": "Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии."}
{"source": "call.wav", "start": 3.49, "end": 3.934, "channel": 0, "speaker": "Канал 0", "text": "Угу"}
SRT¶
Говорящий - в начале текста субтитра.
1
00:00:00,994 --> 00:00:09,054
Канал 1: Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии.
2
00:00:03,490 --> 00:00:03,934
Канал 0: Угу
WebVTT¶
Говорящий - в теге голоса <v> и в начале текста: плееры, которые не показывают голоса, все равно покажут, кто говорит.
WEBVTT
00:00:00.994 --> 00:00:09.054
<v Канал 1>Канал 1: Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии.
00:00:03.490 --> 00:00:03.934
<v Канал 0>Канал 0: Угу
ASS¶
Субтитры в формате, который сохраняет Aegisub: говорящий - в поле Name, файл записи - в Audio File, время - с точностью до сотых секунды. Формат совпадает с файлами ASS версии 0.2.
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.99,0:00:09.05,Default,Канал 1,0,0,0,,Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии.
Dialogue: 0,0:00:03.49,0:00:03.93,Default,Канал 0,0,0,0,,Угу
CSV¶
Колонки Audio File, Start, End, Name, Text, время - в миллисекундах, разделитель - запятая. Файл начинается с BOM, поэтому Excel открывает кириллицу без настройки; в консоль CSV печатается без BOM, для Excel сохраняйте его через --output-dir или --summary. Колонки совпадают с CSV версии 0.2, таблицы и отчеты на нем продолжают работать.
Audio File,Start,End,Name,Text
call.wav,994,9054,Канал 1,"Наталья, благодарю вас за ожидание. По данному вопросу я сейчас ваш звонок переведу на специалиста профильного подразделения. Оставайтесь, пожалуйста, на линии."
call.wav,3490,3934,Канал 0,Угу