0

我们已经启动了一个项目来创建与 DeepSpeech 一起使用的土耳其语语音识别数据集。

我们完成了电子书的预处理任务。但是我们无法完成与埃涅阿斯的强制对齐过程。

根据其强制对齐教程,您需要一个文本文件及其录制的音频文件。在对电子书进行预处理时,我们创建了 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 文本文件。

是否可以创建一个包含所有 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")

顺便说一句,我们正在使用 python 3 开发 Google Colab。

4

1 回答 1

0

我想办法解决我的问题,并找到了解决方案。

我可以将 aeneas 文本文件与以下代码组合,而不是组合 JSON 文件:

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 文件。

于 2019-01-24T18:53:04.757 回答