2019-07-04:Pythonオーディオ処理ライブラリ

転載、ソースを忘れてしまいました...

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ライブラリ:音声特徴抽出ライブラリ

おすすめ

転載: blog.csdn.net/weixin_38192254/article/details/104004103