2

私は現在、オーディオのセグメントがオーバーレイされて結合されているコードに取り組んでいる初心者のプログラマーです。結合は今のところ問題なく機能しますが、オーバーレイに関してエラーがあるようです。

私は実際に別のスタックオーバーフローの質問から次のコードに従いました:

from pydub import AudioSegment

sound1 = AudioSegment.from_file("/path/to/my_sound.wav")
sound2 = AudioSegment.from_file("/path/to/another_sound.wav")

combined = sound1.overlay(sound2)

combined.export("/path/to/combined.wav", format='wav')

次のエラーを受け取りました(重要でない部分が削除されました):

    combined = sound1.overlay(sound2)
  File "C:\Python27\pydub\audio_segment.py", line 565, in overlay
    sample_width))
audioop.error: Size should be 1, 2 or 4
[Finished in 13.0s with exit code 1]

オーディオ ファイルはどちらも .wav 形式、24 ビット (IE はステレオではありません)、44100 Hz で、どちらも同じ長さ (2 秒) であるため、何が起こっているのかわかりません。私はどこでも(私が通常考えるだろう)サイズの言及をチェックしましたが、何も見つかりませんでした. そうは言っても、誰かがエラーメッセージで何が起こっているのかについての手がかりを教えてもらえますか?

よろしくお願いします。

4

1 に答える 1

3

Pydub は Python StdLib の wave モジュールを使用しますが、これは残念ながら 24 ビット wave をサポートしていません。

8、16、または 32 ビットの wave ファイルを渡す必要があります:/

エラー メッセージに「サイズは 1、2、または 4 にする必要があります」と表示されている場合は、各サンプルのバイト数 (1 バイト == 8 ビット) を示しています。24ビットは3バイト

于 2014-04-15T23:56:30.533 に答える