目次
1. インストール
2. 音声ファイルのインポートと読み取り
3. 音声の再生
4. 音声の長さ
5. 音声のカット
6. 音声の結合
7. 音声変換
8. 音量の調整
9. 音声の分割
10. 完全なコード
アプリケーションケース
1. オーディオ ファイルを指定された形式に変換します
2. 複数のオーディオ ファイルを 1 つのファイルに結合します
3 . Make着信音
4. オーディオの音量を調整します
ホームページ バックエンド開発 Python チュートリアル Pythonオーディオ処理ライブラリpydubの使い方

Pythonオーディオ処理ライブラリpydubの使い方

May 06, 2023 am 11:58 AM
python pydub

    1. インストール

    pip を使用してインストールします (ffmpeg の依存関係もインストールする必要があります。インストールには conda コマンドを使用することをお勧めします)。環境を設定する必要はありません):

    pip install pydub
    ログイン後にコピー

    2. 音声ファイルのインポートと読み取り

    from pydub import AudioSegment
    audio = AudioSegment.from_file("path/to/file")
    ログイン後にコピー

    3. 音声の再生

    from pydub.playback import play
    play(audio)
    ログイン後にコピー

    4. 音声の長さ

    duration = audio.duration_seconds # 单位为秒
    ログイン後にコピー

    5. 音声のカット

    # 前10秒
    audio = audio[:10000]
    
    # 后10秒
    audio = audio[-10000:]
    
    # 从第10秒开始到第20秒结束
    audio = audio[10000:20000]
    
    # 从第10秒开始到结尾
    audio = audio[10000:]
    
    # 从开始到第10秒audio = audio[:10000]
    ログイン後にコピー

    6. 音声の結合

    audio1 = AudioSegment.from_file("path/to/file1")
    audio2 = AudioSegment.from_file("path/to/file2")
    audio_combined = audio1 + audio2
    ログイン後にコピー

    7. 音声変換

    audio.export("path/to/new/file", format="mp3")
    ログイン後にコピー

    8. 音量の調整

    # 增加10分贝
    louder_audio = audio + 10
    
    # 减小10分贝
    quieter_audio = audio - 10
    ログイン後にコピー

    9. 音声の分割

    # 等分分割,按大概每三分钟进行分割
    for i in range(1, 1000):
        if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8:
            number = i
            break
    chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)]  # 切割
    
    # 保存分割后的音频
    for i, chunk in enumerate(chunks):
        chunk.export("path/to/new/file{}.wav".format(title,i), format="wav")
    ログイン後にコピー

    10. 完全なコード

    次は、前後のオーディオを切り取り、保存するために適切な長さの小さなセグメントにオーディオを分割するために使用される完全なコードです。

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 输出视频时长
    print('视频时长:', audio.duration_seconds / 60)
    
    # 前后切割
    start = int(input('前切割n秒,不切割输入0'))*1000
    end = int(input('后切割n秒,不切割输入0'))*1000
    if start:
        audio = audio[start:-end]
    
    # 计算合适的分割长度
    for i in range(1, 1000):
        if 3.3 >= (audio.duration_seconds / (60 * i)) >= 2.8:
            number = i
            break
    chunks = audio[::int(audio.duration_seconds / number * 1000 + 1)] 
    # 保存分割后的音频
    for i, chunk in enumerate(chunks):
        print('分割后的时长:', chunk.duration_seconds / 60)
        chunk.export("path/to/new/file{}.wav".format(i), format="wav")
    ログイン後にコピー

    アプリケーションケース

    1. オーディオ ファイルを指定された形式に変換します

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 转换为mp3格式并保存
    audio.export("path/to/new/file.mp3", format="mp3")
    ログイン後にコピー

    2. 複数のオーディオ ファイルを 1 つのファイルに結合します

    from pydub import AudioSegment
    
    # 读取音频文件
    audio1 = AudioSegment.from_file("path/to/file1")
    audio2 = AudioSegment.from_file("path/to/file2")
    
    # 合并音频文件并保存
    combined_audio = audio1 + audio2
    combined_audio.export("path/to/new/file", format="wav")
    ログイン後にコピー

    3 . Make着信音

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 切割并保存
    start = 10000
    end = 15000
    ringtone = audio[start:end]
    ringtone.export("path/to/new/file", format="mp3")
    ログイン後にコピー

    4. オーディオの音量を調整します

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 增加10分贝
    louder_audio = audio + 10
    
    # 减小10分贝
    quieter_audio = audio - 10
    
    # 保存调整后的音频
    louder_audio.export("path/to/new/file", format="wav")
    quieter_audio.export("path/to/new/file", format="wav")
    ログイン後にコピー

    ケース: 空の音を識別してオーディオ内の曲を分割します

    from pydub import AudioSegment
    from pydub.silence import split_on_silence
    
    # 读取音频文件
    audio = AudioSegment.from_file("audio.mp3", format="mp3")
    
    # 设置分割参数
    min_silence_len = 700  # 最小静音长度
    silence_thresh =-10  # 静音阈值,越小越严格
    keep_silence = 600  # 保留静音长度
    
    # 计算分割数量
    num_segments = int(audio.duration_seconds/60/3)  # 每首歌曲大概三分钟,计算歌曲数量
    
    # 分割音频文件
    for i in range(-10, 0):
        segments = split_on_silence(audio, min_silence_len=min_silence_len, silence_thresh=i, keep_silence=keep_silence)
        if len(segments) <= num_segments:
            print(f"分割成功,共分割出 {len(segments)} 段")
            break
        else:
            print(f"当前阈值为 {i},分割出 {len(segments)} 段,继续尝试")
    ログイン後にコピー

    最初に、AudioSegment を使用します。 from_file() メソッドを使用してオーディオ ファイルを読み取り、最小無音長、無音しきい値、保持される無音長をそれぞれ表すセグメンテーション パラメーター min_silence_len、silence_thresh、および keep_silence を設定します。このうち、無音閾値が小さいほど、より多くの小さなセグメントが切り出されますが、切り落としが発生する可能性があり、逆に、無音閾値が大きいほど、切り出されるセグメントは少なくなりますが、切り出し漏れが発生する可能性があります。

    次に、分割数 num_segments、つまりオーディオ ファイルが何つのセグメントに分割されているかを計算します。ここでは1曲を約3分として、何分割する必要があるかを計算してみます。

    最後に、split_on_silence() メソッドを使用してオーディオ ファイルを分割し、分割パラメータを設定し、セグメント化されたセグメントの数が期待を満たすまでループを通じて無音のしきい値を継続的に調整します。分割が成功した場合はループから抜け出し、そうでない場合は試行を続けます。

    つまり、pydub は、オーディオ処理、変換、結合などの操作を簡単に実行できる、非常に実用的なオーディオ処理ライブラリです。同時に、pydub には、着信音の作成、音量の調整などの豊富なアプリケーション シナリオもあります。 pydub を使用する場合は、オーディオ形式の互換性の問題に注意する必要があることに注意してください。

    さらに、pydub を通じてオーディオのエンコード、デコード、ミキシング、リサンプリングなどの操作を実行することもできます。以下に、一般的な操作の例をいくつか示します。

    コーディング、ミキシング、リサンプリング

    1. コーデック

    from pydub import AudioSegment
    
    # 读取音频文件
    audio = AudioSegment.from_file("path/to/file")
    
    # 编码
    encoded_audio = audio.set_frame_rate(16000).set_sample_width(2).set_channels(1)
    
    # 解码
    decoded_audio = encoded_audio.set_frame_rate(44100).set_sample_width(4).set_channels(2)
    ログイン後にコピー

    2. ミキシング

    from pydub import AudioSegment
    
    # 读取音频文件
    audio1 = AudioSegment.from_file("path/to/file1")
    audio2 = AudioSegment.from_file("path/to/file2")
    
    # 混音
    mixed_audio = audio1.overlay(audio2)
    
    # 保存混音后的音频
    mixed_audio.export("path/to/new/file", format="wav")
    ログイン後にコピー

    3. リサンプリング

    from pydub import AudioSegment
    
    # 读取音频文件
    audio =AudioSegment.from_file("path/to/file")
    
    # 重采样为44100Hz
    resampled_audio = audio.set_frame_rate(44100)
    
    # 保存重采样后的音频
    resampled_audio.export("path/to/new/file", format="wav")
    ログイン後にコピー

    pydub を通じて、オーディオのエンコード、デコード、ミキシング、リサンプリングなどの操作を簡単に実行でき、pydub のアプリケーション シナリオをさらに拡張できます。オーディオ ミキシング操作を実行するときは、2 つのオーディオ ファイルのサンプリング レート、サンプリング ビット数、チャンネル数が同じであることを確認する必要があることに注意してください。

    最後に、pydub のメリットとデメリットをまとめます。

    利点:

    軽量: pydub は、インストールと使用が簡単な軽量のオーディオ処理ライブラリです。

    豊富な機能: pydub は、カット、マージ、変換、ボリューム調整、エンコードとデコード、ミキシング、リサンプリングなどを含む、豊富なオーディオ処理機能を提供します。

    幅広い用途: pydub には、オーディオ処理、着信音の作成、オーディオ形式の変換、音声認識など、幅広いアプリケーション シナリオがあります。

    欠点:

    形式との互換性が制限されている: pydub は音声形式との互換性が制限されており、すべての音声形式をサポートしているわけではありません。音声は処理する前にサポートされている形式に変換する必要があります。

    平凡なパフォーマンス: pydub が大きなファイルを処理する場合、そのパフォーマンスは平均的になる可能性があり、ある程度の時間とコンピューティング リソースが必要になります。

    ストリーミング処理をサポートしていません: pydub はストリーミング処理をサポートしていません。オーディオ ファイル全体をメモリに読み込む必要があるため、メモリ フットプリントが大きくなります。

    要約すると、pydub は機能が豊富で広く使用されているオーディオ処理ライブラリです。 pydub を使用する場合は、オーディオ形式の互換性の問題に注意し、大きなファイルを処理するときのパフォーマンスとメモリ使用量に注意する必要があります。より複雑なオーディオ タスクを処理する必要がある場合は、他のより専門的なオーディオ処理ライブラリの使用を検討できます。

    以上がPythonオーディオ処理ライブラリpydubの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

    PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

    Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

    PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

    CentosのPytorchのGPUサポートはどのようにサポートされていますか CentosのPytorchのGPUサポートはどのようにサポートされていますか Apr 14, 2025 pm 06:48 PM

    Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

    Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

    DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

    ミニオペンCentosの互換性 ミニオペンCentosの互換性 Apr 14, 2025 pm 05:45 PM

    MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

    CentosでPytorchの分散トレーニングを操作する方法 CentosでPytorchの分散トレーニングを操作する方法 Apr 14, 2025 pm 06:36 PM

    Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

    CentosでPytorchバージョンを選択する方法 CentosでPytorchバージョンを選択する方法 Apr 14, 2025 pm 06:51 PM

    PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

    Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

    Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

    See all articles