python pydubの使い方(2)
7968 ワード
AudioSegment.silent()
音声のないオーディオクリップを作成
パラメータ:
duration:持続時間(ミリ秒)
AudioSegment.from_mono_audiosegments()
2つのモノラルを1つのマルチチャネルオーディオに統合
AudioSegment(…).dBFS
オーディオファイルボリュームデシベル数を取得
AudioSegment(…).channels
オーディオファイルのチャンネル数を取得
AudioSegment(…).sample_width
オーディオファイルサンプリング幅の取得
AudioSegment(…).frame_rate
オーディオファイルサンプリング周波数の取得
AudioSegment(…).frame_width
frame_width=sample_width*channels
AudioSegment(…).rms
一般的にデシベル数(dB=20)を計算するために使用されるオーディオボリュームのサイズを取得します.×lgX)
AudioSegment(…).max
オーディオの最大振幅を取得
AudioSegment(…).duration_seconds
オーディオの持続時間を取得し、len()と同じ
AudioSegment(…).raw_data
オーディオデータを取得
AudioSegment(…).frame_count()
オーディオのframe数を取得
パラメータ:
ms:0~msミリ秒以内のframe数
AudioSegment(…).append()
sound 1とsound 2を接続し、新しいAudioSegmentインスタンスを返します.
パラメータ:
cossfade:クロスグラデーション間隔
AudioSegment(…).overlay()
sound 2をsound 1に上書きすると、2つのオーディオファイルが重なり、sound 2が長いと切断されます.
パラメータ:
position:開始位置を上書き(ミリ秒)
loop:ループオーバーライド(true/false)
times:重複オーバーライド回数(デフォルト1)
gain_during_overlay:オーバーライドされたオーディオの音量を調整(eg,-6.0)
AudioSegment(…).apply_gain(
音量を調整
AudioSegment(…).fade()
フェードアウト
パラメータ:
to_gain:フェードアウト終了時にオーディオ音量が下がったデシベル数
from_gain:フェードアウト前のすべてのオーディオデシベル数を設定
start:フェードアウトの開始位置
end:フェードアウトの終了位置
duration:持続時間をフェードアウト
AudioSegment(…).fade_out()
無声になる
パラメータ:
duration:持続時間をフェードアウト
AudioSegment(…).reverse()
オーディオを逆再生するオーディオを生成
AudioSegment(…).set_sample_width()
オーディオの新しいコピーを生成し、サンプリング幅を変更しながら、値を大きくすると精度が失われず、値を小さくすると精度が失われます.
AudioSegment(…).set_frame_rate()
サンプリングレートを変更しながらオーディオのコピーを作成し、値を大きくすると精度が失われず、値を小さくすると精度が失われます.
AudioSegment(…).set_channels()
このオーディオのコピーを作成し、同時にチャネル数を変更すると、シングルチャネルからマルチチャネルではオーディオ品質が低下せず、マルチチャネルからシングルチャネルでは左右のチャネルが異なると品質が低下する
AudioSegment(…).split_to_mono()
1つのマルチチャネルオーディオを2つのシングルチャネルに分解する
index[0]は左チャネル
index[1]は右チャンネル
AudioSegment(…).apply_gain_stereo()
マルチチャネルオーディオの左右のチャネル音量を調整
このメソッドがモノラルオーディオで呼び出されると、まずマルチチャネルに変換されます.
AudioSegment(…).pan()
左右のチャネルバランスをパーセントで大きくし、反対側を小さくします.
A
AudioSegment(…).get_array_of_samples()
オーディオファイルの元のデータsamples配列を取得
マルチチャネルファイルの場合は、同様の値を返します.
[sample_1_L, sample_1_R, sample_2_L, sample_2_R, …].
samples配列をオーディオに戻す
AudioSegment(…).get_dc_offset()
channelの直流オフセットを取得し、戻り値=オフセットデシベル/最大デシベル
多くのサウンド処理ツールは、既定のサウンドのバランス位置が中央にあり、オフセットすると効果的に変化します.
パラメータ:
チャネル:1左チャネル、2右チャネル、モノラルオーディオにこのパラメータはありません
AudioSegment(…).remove_dc_offset()
直流オフセットを除去します.この方法はaudioopに基づいている.Bias()は、オーバーフローが発生する可能性があります
パラメータ:
channel:1/2/Nene,1左チャネル,2右チャネル,None全チャネル
offset:オフセット率、-1.0~1.0
AudioSegment(…).invert_phase()
DSPベースのレンダリング
逆位相波を除去したり、ノイズを低減したりするために、逆信号のコピーを生成します.
音声のないオーディオクリップを作成
from pydub import AudioSegment
ten_second_silence = AudioSegment.silent(duration=10000)
パラメータ:
duration:持続時間(ミリ秒)
frame_rate
:周波数(デフォルト11025
(11.025 kHz))AudioSegment.from_mono_audiosegments()
2つのモノラルを1つのマルチチャネルオーディオに統合
from pydub import AudioSegment
left_channel = AudioSegment.from_wav("sound1.wav")
right_channel = AudioSegment.from_wav("sound1.wav")
stereo_sound = AudioSegment.from_mono_audiosegments(left_channel, right_channel)
AudioSegment(…).dBFS
オーディオファイルボリュームデシベル数を取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
loudness = sound.dBFS
AudioSegment(…).channels
オーディオファイルのチャンネル数を取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
channel_count = sound.channels
AudioSegment(…).sample_width
オーディオファイルサンプリング幅の取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
bytes_per_sample = sound.sample_width
AudioSegment(…).frame_rate
オーディオファイルサンプリング周波数の取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
frames_per_second = sound.frame_rate
AudioSegment(…).frame_width
frame_width=sample_width*channels
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
bytes_per_frame = sound.frame_width
AudioSegment(…).rms
一般的にデシベル数(dB=20)を計算するために使用されるオーディオボリュームのサイズを取得します.×lgX)
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
loudness = sound.rms
AudioSegment(…).max
オーディオの最大振幅を取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
normalized_sound = sound.apply_gain(-sound.max_dBFS)
AudioSegment(…).duration_seconds
オーディオの持続時間を取得し、len()と同じ
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
assert sound.duration_seconds == (len(sound) / 1000.0)
AudioSegment(…).raw_data
オーディオデータを取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
raw_audio_data = sound.raw_data
AudioSegment(…).frame_count()
オーディオのframe数を取得
from pydub import AudioSegment
sound = AudioSegment.from_file("sound1.wav")
number_of_frames_in_sound = sound.frame_count()
number_of_frames_in_200ms_of_sound = sound.frame_count(ms=200)
パラメータ:
ms:0~msミリ秒以内のframe数
AudioSegment(…).append()
sound 1とsound 2を接続し、新しいAudioSegmentインスタンスを返します.
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
sound2 = AudioSegment.from_file("sound2.wav")
# default 100 ms crossfade
combined = sound1.append(sound2)
# 5000 ms crossfade
combined_with_5_sec_crossfade = sound1.append(sound2, crossfade=5000)
# no crossfade
no_crossfade1 = sound1.append(sound2, crossfade=0)
# no crossfade
no_crossfade2 = sound1 + sound2
パラメータ:
cossfade:クロスグラデーション間隔
AudioSegment(…).overlay()
sound 2をsound 1に上書きすると、2つのオーディオファイルが重なり、sound 2が長いと切断されます.
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
sound2 = AudioSegment.from_file("sound2.wav")
played_togther = sound1.overlay(sound2)
sound2_starts_after_delay = sound1.overlay(sound2, position=5000)
volume_of_sound1_reduced_during_overlay = sound1.overlay(sound2, gain_during_overlay=-8)
sound2_repeats_until_sound1_ends = sound1.overlay(sound2, loop=true)
sound2_plays_twice = sound1.overlay(sound2, times=2)
# assume sound1 is 30 sec long and sound2 is 5 sec long:
sound2_plays_a_lot = sound1.overlay(sound2, times=10000)
len(sound1) == len(sound2_plays_a_lot)
パラメータ:
position:開始位置を上書き(ミリ秒)
loop:ループオーバーライド(true/false)
times:重複オーバーライド回数(デフォルト1)
gain_during_overlay:オーバーライドされたオーディオの音量を調整(eg,-6.0)
AudioSegment(…).apply_gain(
gain
) 音量を調整
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
# make sound1 louder by 3.5 dB
louder_via_method = sound1.apply_gain(+3.5)
louder_via_operator = sound1 + 3.5
# make sound1 quieter by 5.7 dB
quieter_via_method = sound1.apply_gain(-5.7)
quieter_via_operator = sound1 - 5.7
AudioSegment(…).fade()
フェードアウト
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
fade_louder_for_3_seconds_in_middle = sound1.fade(to_gain=+6.0, start=7500, duration=3000)
fade_quieter_beteen_2_and_3_seconds = sound1.fade(to_gain=-3.5, start=2000, end=3000)
# easy way is to use the .fade_in() convenience method. note: -120dB is basically silent.
fade_in_the_hard_way = sound1.fade(from_gain=-120.0, start=0, duration=5000)
fade_out_the_hard_way = sound1.fade(to_gain=-120.0, end=0, duration=5000)
パラメータ:
to_gain:フェードアウト終了時にオーディオ音量が下がったデシベル数
from_gain:フェードアウト前のすべてのオーディオデシベル数を設定
start:フェードアウトの開始位置
end:フェードアウトの終了位置
duration:持続時間をフェードアウト
AudioSegment(…).fade_out()
無声になる
パラメータ:
duration:持続時間をフェードアウト
AudioSegment(…).reverse()
オーディオを逆再生するオーディオを生成
AudioSegment(…).set_sample_width()
オーディオの新しいコピーを生成し、サンプリング幅を変更しながら、値を大きくすると精度が失われず、値を小さくすると精度が失われます.
AudioSegment(…).set_frame_rate()
サンプリングレートを変更しながらオーディオのコピーを作成し、値を大きくすると精度が失われず、値を小さくすると精度が失われます.
AudioSegment(…).set_channels()
このオーディオのコピーを作成し、同時にチャネル数を変更すると、シングルチャネルからマルチチャネルではオーディオ品質が低下せず、マルチチャネルからシングルチャネルでは左右のチャネルが異なると品質が低下する
AudioSegment(…).split_to_mono()
1つのマルチチャネルオーディオを2つのシングルチャネルに分解する
index[0]は左チャネル
index[1]は右チャンネル
AudioSegment(…).apply_gain_stereo()
マルチチャネルオーディオの左右のチャネル音量を調整
このメソッドがモノラルオーディオで呼び出されると、まずマルチチャネルに変換されます.
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
# make left channel 6dB quieter and right channe 2dB louder
stereo_balance_adjusted = sound1.apply_gain_stereo(-6, +2)
AudioSegment(…).pan()
左右のチャネルバランスをパーセントで大きくし、反対側を小さくします.
from pydub import AudioSegment
sound1 = AudioSegment.from_file("sound1.wav")
# pan the sound 15% to the right
panned_right = sound1.pan(+0.15)
# pan the sound 50% to the left
panned_left = sound1.pan(-0.50)
A
AudioSegment(…).get_array_of_samples()
オーディオファイルの元のデータsamples配列を取得
マルチチャネルファイルの場合は、同様の値を返します.
[sample_1_L, sample_1_R, sample_2_L, sample_2_R, …].
from pydub import AudioSegment
sound = AudioSegment.from_file(“sound1.wav”)
samples = sound.get_array_of_samples()
# then modify samples...
new_sound = sound._spawn(samples)
samples配列をオーディオに戻す
import array
import numpy as np
from pydub import AudioSegment
sound = AudioSegment.from_file(“sound1.wav”)
samples = sound.get_array_of_samples()
shifted_samples = np.right_shift(samples, 1)
# now you have to convert back to an array.array
shifted_samples_array = array.array(sound.array_type, shifted_samples)
new_sound = sound._spawn(shifted_samples_array)
AudioSegment(…).get_dc_offset()
channelの直流オフセットを取得し、戻り値=オフセットデシベル/最大デシベル
多くのサウンド処理ツールは、既定のサウンドのバランス位置が中央にあり、オフセットすると効果的に変化します.
パラメータ:
チャネル:1左チャネル、2右チャネル、モノラルオーディオにこのパラメータはありません
AudioSegment(…).remove_dc_offset()
直流オフセットを除去します.この方法はaudioopに基づいている.Bias()は、オーバーフローが発生する可能性があります
パラメータ:
channel:1/2/Nene,1左チャネル,2右チャネル,None全チャネル
offset:オフセット率、-1.0~1.0
AudioSegment(…).invert_phase()
DSPベースのレンダリング
逆位相波を除去したり、ノイズを低減したりするために、逆信号のコピーを生成します.