Мне нужно преобразовать аудио файлы .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)
Ошибка трассировки. Обратите внимание, что в «environments/hdf/lib/python3.6/» «hdf» — это корневая папка виртуальной среды. «/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
data.shape
? Есть ли еще сообщение об ошибке, которое вы не включили? Если это так, добавьте к вопросу сообщение об ошибке complete (т. е. полную трассировку). - person Warren Weckesser   schedule 08.05.2020