転載、ソースを忘れてしまいました...
1つ、eyeD3
MP3ファイルを処理します。-aは--artistの略語、つまり歌手情報の追加、-Aは--albumの略語、つまりアルバム情報の追加、-tは--titleの略語、つまり曲の追加です。名前、-nは--track-numの省略形、つまりトラック数を追加すると、eyeD3song.mp3は曲の基本情報を直接表示します。
使用例:
インポートeyed3
audiofile = eyed3.load( "song.mp3")
audiofile.tag.artist = u "Nobunny"
audiofile.tag.album = u "Love Visions"
audiofile.tag.album_artist = u "さまざまなアーティスト"
audiofile.tag.title = u "私はガールフレンドです"
audiofile.tag.track_num = 4
audiofile.tag.save()
二、pydub
シンプルで使いやすいオーディオ処理の非常に抽象的なインターフェース。公式APIドキュメント:https://github.com/jiaaro/pydub/blob/master/API.markdown。
一般的な使用法:
1.mp3やmp4などのファイルを開きます
pydubからAudioSegmentをインポート
song = AudioSegment.from_wav( "never_gonna_give_you_up.wav")
song = AudioSegment.from_mp3( "never_gonna_give_you_up.mp3")ogg_version = AudioSegment.from_ogg( "never_gonna_give_you_up.ogg")flv_version = AudioSegment.from_flv( "never_gonna_give_you_up.flv")flv_version = AudioSegment.from_flv( "never_gonna_give_you_up.flv") ")
wma_version = AudioSegment.from_file( "never_gonna_give_you_up.wma"、 "wma")
aac_version = AudioSegment.from_file( "never_gonna_give_you_up.aiff"、 "aac")
2.オーディオをカットします
#pydubはミリ秒単位で処理を実行します
ten_seconds = 10 * 1000
first_10_seconds = song [:ten_seconds]
last_5_seconds = song [-5000:]
3.音量を調整します
#音量を6dBブースト
開始= first_10_seconds + 6
#音量を3dB下げる
終了= last_5_seconds-3
4.2つの音楽をつなぎ合わせる
without_the_middle =開始+終了without_the_middle.duration_seconds
スプライシング後の音楽の長さは、2つの音楽の長さの合計であり、曲の長さは.duration_secondsメソッドを使用して取得できます。これは、len(audio)/1000.0を使用した場合と同じ結果です。
5.音楽を逆にします
#曲は変更されません
#AudioSegmentsは不変です
後方= song.reverse()
AudioSegmentオブジェクトは不変であることに注意してください。上記のreverseメソッドを使用しても、songオブジェクトは変更されませんが、新しいAudioSegmentオブジェクトが返されます。これは他のメソッドにも当てはまるため、注意が必要です。簡単に言うと、リバースとは、尻尾から頭に向かって逆の順序で音楽を再生することです。試してみたところ、変換後は本当に面白いことがわかりました。
6、クロスフェード(クロスフェードインおよびフェードアウト方式)
#1.5秒のクロスフェード
with_style = begin.append(end、crossfade = 1500)
クロスフェードとは、ある音楽から別の音楽にスムーズに移行することです。上記のクロスフェード= 1500は、移行時間が1.5秒であることを意味します。
7.繰り返します(ミュージッククリップを繰り返します)
#クリップを2回繰り返す
do_it_over = with_style * 2
上記のコードにより、音楽が2回再生されます。
8.フェードインとフェードアウト(徐々に強化され、徐々に弱められます)
#2秒フェードイン、3秒フェードアウト
awesome = do_it_over.fade_in(2000).fade_out(3000)
2秒間徐々に増加し、3秒間徐々に減少します
9、保存(保存)
awesome.export( "mashup.mp3"、format = "mp3")
awesome.export( "mashup.mp3"、format = "mp3"、tags = {'artist': 'さまざまなアーティスト'、 'アルバム': '2011年のベスト'、 'コメント': 'このアルバムは素晴らしいです!'} )
保存する方法は2つあり、どちらもexportメソッドを使用します。保存の形式を指定するには、formatパラメーターを使用しますが、2番目の方法には追加のtagsパラメーターがあります。実際、これを見るとわかりやすいはずです。曲ID3タグを保存することです。
三、波
Pythonには、オーディオファイルをwav形式で読み書きするためのモジュールが付属しています。
1.wavファイルを開きます
wave.open(file、mode = None)
モード:「rb」および「wb」
2.読み取り操作
Wave_read.close()
Wave_read.getnchannels()
Wave_read.getsampwidth()
Wave_read.getframerate()
Wave_read.getnframes()
Wave_read.getcomptype()
Wave_read.getcompname()
Wave_read.getparams()
Wave_read.readframes(n)
Wave_read.rewind()
Wave_read.getmarkers()
Wave_read.getmark(id)
Wave_read.setpos(pos)
Wave_read.tell()
3.書き込み操作
Wave_write.close()
Wave_write.setnchannels(n)
Wave_write.setsampwidth(n)
Wave_write.setframerate(n)
Wave_write.setnframes(n)
Wave_write.setcomptype(type、name)
Wave_write.setparams(tuple)
Wave_write.tell()
Wave_read.setpos()
Wave_write.writeframesraw(data)
Wave_write.writeframes(data)
四、ffmpeg / libav
ffmpeg:MP3ファイル処理。
ファイブ、PyAudio
Pyaudioは、クロスプラットフォームのPortAudio(オーディオの入力と出力を処理するライブラリ)へのバインディングを提供します。PyAudioを使用すると、強力な機能を使用してオーディオを簡単に録音および再生できます。
公式ドキュメントアドレス:https://people.csail.mit.edu/hubert/pyaudio/docs/
使用例:
"" "PyAudioの例:Waveファイルを再生します。" ""
pyaudioをインポートするwaveをインポートする
インポートシステム
チャンク= 1024
len(sys.argv)<2の場合:
print( "Waveファイルを再生します。\ n \ n使用法:%s filename.wav"%sys.argv [0])
sys.exit(-1)
wf = wave.open(sys.argv [1]、 'rb')
#PyAudioをインスタンス化する(1)
p = pyaudio.PyAudio()
#オープンストリーム(2)
ストリーム= p.open(format = p.get_format_from_width(wf.getsampwidth())、
チャネル= wf.getnchannels()、
rate = wf.getframerate()、output = True)
#データの読み取り
データ= wf.readframes(CHUNK)
#ストリームを再生(3)
len(data)> 0の場合:
stream.write(data)
データ= wf.readframes(CHUNK)
#ストリームを停止(4)
stream.stop_stream()
stream.close()
#PyAudioを閉じる(5)
p.terminate()
CHUNKは、一度に読み取られるオーディオバイト数であり、p = pyaudio.PyAudio()はPyAudioオブジェクトを初期化し、そのopenメソッドを使用して入力ストリームと出力ストリームを開きます。ここで、output = Trueは、これが出力ストリーム、つまり、ストリームにデータを追加します。input= Trueに変更すると、入力ストリームになります。通常、デバイスからの標準オーディオデバイスであり、マイクの場合もあります。コンピュータがオーディオデータを読み取るため。waveを使用して.wavファイルを開き、readframesメソッドを使用して毎回大量のデータをCHUNKで読み取り、読み取りが完了するまでデータをストリームに書き込みます。ストリームに書き込まれたオーディオデータは引き続きマイクを介して再生されるため、音楽を聞くことができます。最後に、対応するオブジェクトを閉じてリソースを解放するように注意してください。
6、pygameモジュール:ゲームを作成するためのPythonモジュール
セブン、librosaライブラリ:プロのデジタル信号処理ライブラリ
librosaライブラリをインストールします。依存ライブラリはjoblib、l1vmlite、numba、resampyです。
https://blog.csdn.net/zzc15806/article/details/79603994
8. python_speech_featuresライブラリ:音声特徴抽出ライブラリ