Преобразование аудиофайлов .wav в файлы .h5 (hdf) с помощью SciPy и PyTables - PullRequest
0 голосов
/ 08 мая 2020

Мне нужно преобразовать аудиофайлы .wav в формат .hf или .npz, поскольку они являются поддерживаемым форматом для обучения систем перевода речи с помощью FBK-Fairseq-ST (https://github.com/mattiadg/FBK-Fairseq-ST). Следующий сценарий предназначен для запуска с терминала как python script.py /path/file.wav и записи нового файла hdf, хранящего информацию о файле .wav в той же папке.

from scipy.io import wavfile
import tables
import numpy
import sys

#read data from wav
#fs, data = wavfile.read('/home/vittoria/Documents/corpus-test/01.wav')
fs, data = wavfile.read(sys.argv[1])

#ouput
folder=sys.argv[1][:-6]
name= sys.argv[1][-6:-3]+"h5"

#save_to acoular h5 format
acoularh5 = tables.open_file(folder+name, mode = "w", title = name)
acoularh5.create_earray('/','time_data', atom=None, title='', filters=None, \
                         expectedrows=100000, chunkshape=[256,64], \
                         byteorder=None, createparents=False, obj=data)
acoularh5.set_node_attr('/time_data','sample_freq', fs)
acoularh5.close()

Однако это вызывает ошибку значения: ValueError: ранги shape ((0,)) и chunkshape ((256, 64)) должны быть равны.

ввод с терминала: python 2hf.py 01_83.wav" (python script.py относительный путь к файлу)

Ошибка трассировки, обратите внимание, что в "environment / hdf / lib / python3 .6 /" «hdf» - это папка root виртуальной среды. «/ tables /» - это папка для таблиц пакетов 3.6.1 (https://pypi.org/project/tables/), установленных с помощью команды pip в виртуальной среде.

Traceback (most recent call last):
  File "2hf.py", line 18, in <module>
    byteorder=None, createparents=False, obj=data)
  File "/home/giuseppe/environments/hdf/lib/python3.6/site-packages/tables/file.py", line 1384, in create_earray
    track_times=track_times)
  File "/home/giuseppe/environments/hdf/lib/python3.6/site-packages/tables/earray.py", line 160, in __init__
    track_times)
  File "/home/giuseppe/environments/hdf/lib/python3.6/site-packages/tables/carray.py", line 212, in __init__
    (shape, chunkshape))
ValueError: the shape ((0,)) and chunkshape ((256, 64)) ranks must be equal.
Closing remaining open files:01_83.h5...done

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