Принудительное выравнивание с использованием Aeneas с несколькими текстовыми файлами Aeneas - PullRequest
0 голосов
/ 22 января 2019

Мы начали проект по созданию набора данных для распознавания турецкой речи для использования с DeepSpeech.

Мы завершили задачу предварительной обработки Ebook.Но мы не смогли завершить процесс принудительного выравнивания с помощью Aeneas.

В соответствии с его руководствами по принудительному выравниванию, вам нужен текстовый файл и записанный аудиофайл.При предварительной обработке Ebook мы создали 430 текстовых файлов, которые были отредактированы и очищены для формата aeneas (разделены на абзацы и предложения с использованием библиотеки nltk).

Но при обработке созданного нами объекта задачи и создании его выходного файла (Json)файл), мы не смогли объединить выходные файлы.Для каждого файла Aeneas он начинается с начала аудиофайла.

Кажется, нам нужно разделить наш аудиофайл на 430 частей, но это не простой процесс.

Я пыталсяобъединить файлы Json с:

import json
import glob

result = []
for f in glob.glob("*.json"):
  with open(f, "rb") as infile:
    result.append(json.load(infile))
with open("merged_file.json", "w") as outfile:
  json.dump(result, outfile)

Но это не сработало, потому что во время процесса принудительного выравнивания, aeneas начинаются с начала аудиофайла для каждого текстового файла aeneas.

Isможно создать объект задачи, который включает в себя все 430 текстовых файлов aeneas, и добавить их в один выходной файл (файл Json) относительно их времени (их секунд), также используя один аудиофайл?

Наш объект задачи:

# create Task object
config_string = "task_language=tur|is_text_type=plain|os_task_file_format=json"
task = Task(config_string=config_string)
task.audio_file_path_absolute = "/content/gdrive/My Drive/TASR/kitaplar/nutuk/Nutuk_sesli.mp3"
task.text_file_path_absolute = "/content/gdrive/My Drive/TASR/kitaplar/nutuk/nutuk_aeneas_data_1.txt")
task.sync_map_file_path_absolute = "/content/gdrive/My Drive/TASR/kitaplar/nutuk/syncmap.json")

Кстати, мы работаем над Google Colab с python 3.

1 Ответ

0 голосов
/ 24 января 2019

Я решил решить свой вопрос и нашел решение.

Вместо объединения файлов JSON я мог бы объединить текстовые файлы aeneas с этим кодом:

with open("/content/gdrive/My Drive/TASR/kitaplar/{0}/{1}/{2}_aeneas_data_all.txt".format(book_name,chapter, 
book_name), "wb") as outfile:
    for i in range(1,count-1):
      file_name = "/content/gdrive/My Drive/TASR/kitaplar/{0}/{1}/{2}_aeneas_data_{3}.txt".format(book_name, chapter, book_name, str(i))
  #print(file_name)
      with open(file_name, "rb") as infile:
        outfile.write(infile.read())

Таким образом, после объединения файлов aeneas я могу создать файл json, содержащий все абзацы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...