Exemple #1
0
def create_files(wav, word_results, items, nbc):
    data = wav.get_one_channel_data()
    for i in word_results.keys():
        starts = word_results[i]['starts']
        ends = word_results[i]['ends']
        num = 1
        for k in range(0, len(starts)):
            file_name = 'word' + str(num) + "_" + str(i) + '.wav'
            file_items = data[starts[k] * items:ends[k] * items]
            if not nbc is None and use_nbc_for_vad:
                if len(file_items) > 10000 and nbc.get_class(nbc.get_classes(nbc.classify(
                        WavFile(samples=WavFile.to_binary(file_items), sample_width=wav.sample_width,
                                time=1)))) == "speech":
                    WavFile.write(path_to_vad_results + file_name, file_items, 0)
                    num += 1
            else:
                if len(file_items) > 10000:
                    WavFile.write(path_to_vad_results + file_name, file_items, 0)
                    num += 1
Exemple #2
0
    def create_sin_test(time, sample_rate, file_name=None, amplitude=32767, freq_hz=100, is_plot=False):
        """
        create test audio file with sin
        @param time: length of audio (seconds)
        @param sample_rate: sample rate (44100 Hz for example)
        @param file_name: name of file for save or None, if you don't wont to save file
        @param amplitude: max amplitude
        @param freq_hz: dominant frequency
        @param is_plot: flag for plot file data
        """
        buf_size = sample_rate*time

        buffer = list(numpy.zeros(buf_size, int))
        for i in range(buf_size):
            buffer[i] += int(amplitude * math.sin(float(2 * math.pi * i * freq_hz / sample_rate)))

        if is_plot:
            plotter = Plotter("Created Sin Test")
            plotter.add_sub_plot_data("data", buffer)
            plotter.sub_plot_all_horizontal()

        if not file_name is None:
            WavFile.write(file_name, buffer, time)