@LakeForest

Как получить цифровой звук из байт, полученных open(file, 'rb'), такой же как если читаем методом scipy.io.wavfile.read()?

filename = args.filename
    target_sr = 16000
    sample_rate_hertz, samples = wavfile.read(filename)
    number_of_samples = round(
        len(samples) * float(target_sr) / sample_rate_hertz)
    samples = scipy.signal.resample(samples, number_of_samples)
    print(samples[:10])
# [ 8.         -6.15779362  8.         17.90166576  8.          0.39760882
#  8.         14.16452768  8.          2.81953318]
   with open(filename, "rb") as fileb:
        abon = base64.b64encode(fileb.read())
        audio_bytes = io.BytesIO(base64.b64decode(abon))
        audio = (
            AudioSegment.from_raw(
                audio_bytes,
                sample_width=2,
                frame_rate=target_sr,
                channels=1,
            ))#.set_frame_rate(16000)
    np_chunk = np.frombuffer(audio.get_array_of_samples(), dtype=np.int16)
    print(np_chunk[:10])
#  [ 18770  17990 -19036      1  16727  17750  28006   8308     16      0]
    print(len(np_chunk)) # 56022
    print(len(samples)) #112000
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы