0

webrtcvadライブラリを使用するには、ファイルをバイトとして読み取る必要があります。私は彼のgithubの例のようにこれを行いました:

    def read_wave(path):
    """Reads a .wav file.
    Takes the path, and returns (PCM audio data, sample rate).
    """
    with contextlib.closing(wave.open(path, 'rb')) as wf:
        num_channels = wf.getnchannels()
        assert num_channels == 1
        sample_width = wf.getsampwidth()
        assert sample_width == 2
        sample_rate = wf.getframerate()
        assert sample_rate in (8000, 16000, 32000)
        pcm_data = wf.readframes(wf.getnframes())
        return pcm_data, sample_rate

しかし今、私はこのバイトの配列を私が扱うことができるものに変換する必要があり、私はこれをそのようにしています (ここで見られるように):

wav_r = np.fromstring(wav_bytes, dtype=np.uint8)

からのwav_bytespcm_data ですread_wav

しかし、これをプロットするwav_rと、次のようになります。 wav_r

を使用して同じファイルを読み取り、librosa.loadそれをプロットすると、次のようになります。 正しいwav

どのようにwav_r見えるべきか。

どうすれば、バイトを使用できる配列に正しく変換できますか?

ありがとう!

PD: uint8 の代わりに int8 を使用してみましたが、これはまだ間違っています:

ここに画像の説明を入力

4

0 に答える 0