m4a ファイル内のフレーム バイト ストリームはどのデータ型に変換する必要がありますか?

m4a ファイル内のフレーム バイト ストリームはどのデータ型に変換する必要がありますか?

私はオーディオ処理研究の初心者で、python3 の pydub モジュールを使用して「m4a」形式のオーディオ ファイルを操作しています。 最初は pydub で元の m4a ファイルを読み取ることはできますが、いくつかの操作手順 (VAD やデータ拡張操作など) を実行した後、生成された m4a ファイル内のフレームを numpy.ndarray として読み取ることができず、次のようなエラーが表示されます。

np.array(frames["music_no_silence"].get_array_of_samples())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/user/miniconda/envs/py36/lib/python3.6/site-packages/pydub/audio_segment.py", line 272, in get_array_of_samples
     array_type_override = self.array_type
  File "/home/user/miniconda/envs/py36/lib/python3.6/site-packages/pydub/audio_segment.py", line 277, in array_type
     return get_array_type(self.sample_width * 8)
  File "/home/user/miniconda/envs/py36/lib/python3.6/site-packages/pydub/utils.py", line 43, in get_array_type
     t = ARRAY_TYPES[bit_depth]
  KeyError: 64

マットなオリジナル入力や最終出力を除いたすべての m4a ファイルをオーディオ アプリケーションで正常に開くことができ、スピーカーから適切なサウンドを再生できるのは奇妙です。この問題をさらに調査すると、最終出力のフレームは 8 バイト サイズであるのに対し、オリジナル入力のフレームは 2 バイト サイズであることがわかりました。

元の入力ファイルと最終出力ファイルの両方を audacity で開くと、両方とも「mono 16000Hz 32-bit float」と表示されます。2 バイトのサイズのフレームは 32bit-float として解釈できないため、32bit-float は Audacity での正規化操作の結果であると考えられます。

私の質問は、バイトサイズが 2、4、8 のフレームの場合、(NumPy では) どのデータ型に変換する必要があるかということです。

また、Audacity で使用される正規化操作を知っている専門家はいますか?

どうもありがとう!

関連情報