eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

Python

Python を使って 無音部分で分割する

投稿日:

インストール

pip install git+https://github.com/jiaaro/pydub.git@master
pip install simpleaudio

コード

from pydub import AudioSegment
from pydub.silence import split_on_silence
from pydub import silence
from pydub.playback import play

sound = AudioSegment.from_file("prec.wav", format="wav")

#chunks = split_on_silence(sound, min_silence_len=1000, silence_thresh=-16,seek_step=1, keep_silence=100)
chunks = split_on_silence(sound, min_silence_len=2000, silence_thresh=-40, keep_silence=600)

for i, chunk in enumerate(chunks):
    chunk.export("dat/"+"output" + str(i) +".wav", format="wav")
    play(chunk)

print(silence.detect_nonsilent(sound, min_silence_len=1000, silence_thresh=-16,seek_step=1))
  • min_silence_len: |デフォルト:1000 サイレント・セクションの最小長 (ミリ秒単位)。オーディオセグメントの長さよりも長い場合は、空のリストが返されます。
  • silence_thresh: |デフォルト: -16 静粛性の上限は dBFS の無音です。
  • seek_step デフォルト:1 無音性をチェックするためのステップのサイズ (ミリ秒単位)。小さいほど正確です。正の整数である必要があります。
  • keep_silence |デフォルト:100 msまたはboolで保持する沈黙の量。チャンクの最初と最後に沈黙を残します。音が突然途切れたように聞こえないようにします。 無音の長さがkeep_silenceデュレーションよりも短い場合は、前後の無音でないセグメントに均等に分割されます。 True が指定されている場合、すべての無音部分が保持され、False が指定されている場合、何も保持されません。

-Python

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.