Почему я не могу вывести или сохранить полный список?

#python #numpy #librosa

#python #numpy #librosa

Вопрос:

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

Когда я печатаю его или сохраняю в файле, он сохраняет его как…

 [ -1.58969939e-04  -2.00387745e-04  -1.95918292e-05 ...,   2.24034284e-05
   3.28184578e-05   1.21092118e-04]
  

Что, похоже, не имеет смысла.. как мне получить все значения?

Я использую библиотеку python librosa для выборки аудиофайла.

Вот код:

 import tensorflow as tf
import numpy as np
import librosa
import glob
import matplotlib.pyplot as plt
from os import listdir
from os.path import isfile, join
import os
from matplotlib.pyplot import specgram


path_train =  "/home/k/kaldi-trunk/egs/start/s5/data/train"
path_test =  "/home/k/kaldi-trunk/egs/start/s5/data/test"
dnn_train = "/home/k/kaldi-trunk/dnn/train/"
dnn_test = "/home/k/kaldi-trunk/dnn/test/"
dnn = "/home/k/kaldi-trunk/dnn/"
path  = "/home/k/kaldi-trunk/egs/start/s5/data/"
train_filelist = path_train "/wav_train.txt"
test_filelist = path_test "/wav_test.txt"


def load_sound_files(file_paths):
    raw_sounds = []
    for fp in file_paths:
        X,sr = librosa.load(fp)
        raw_sounds.append(X)
    return raw_sounds

files_train_path = [dnn_train f for f in listdir(dnn_train) if isfile(join(dnn_train, f))]
files_test_path = [dnn_test f for f in listdir(dnn_test) if isfile(join(dnn_test, f))]

files_train_name = [f for f in listdir(dnn_train) if isfile(join(dnn_train, f))]
files_test_name = [f for f in listdir(dnn_test) if isfile(join(dnn_test, f))]


os.chdir(dnn_train)


train_data = load_sound_files(files_train_path)
print "Train done!"

test_data  = load_sound_files(files_test_path)
print "Test done!"
os.chdir(dnn)

#----------------------------------------------------------------------#
#----------------------------Main--------------------------------------#

print train_data[0]
  

Что я делаю не так? Я мог бы предоставить вам доступ к аудиофайлам, которые я отбираю, если это можно использовать полностью.

Комментарии:

1. Не могли бы вы подробнее рассказать о своей проблеме? Что именно вы хотите сделать? Librosa возвращает вам список значений. Содержит ли он образцы всех файлов или только одного? Вы хотите, чтобы они были разделены по файлам?

2. Для меня вывод не выглядит как список, скорее похож на массив numpy. Как вы его сохраняете?

3. Да, вы правы. Тем не менее было бы интересно, чего на самом деле ожидает J. Down. Возможно, этот массив numpy содержит все выбранные данные, и он должен только нарезать их.

4. files_train_path это список путей к разным аудиофайлам, train_data поэтому также будет иметь список numpy.arrays. Я хотел бы просмотреть все элементы, например, первой записи в списке, или, что еще лучше, сохранить все записи numpy.arrays в списке в файл, чтобы я мог просто загрузить его вместо вызова функции, когда мне нужно ее использовать…

5. найдено решение np.set_printoptions(threshold='nan')