PythonのPydubを利用して音声ファイルに時間を合わせて無音を追加する

PythonのPydubを利用して音声ファイルに時間を合わせて無音を追加する

Twitter LINEで送る Facebook はてなブログ

Pythonを使って音声ファイルの操作を行うpydubというライブラリを 使ってサンプルを作りました。

音声ファイルがあって、音声の後ろに無音を追加するサンプルです。 出力結果が5秒で元の音声が1秒だった場合に4秒の無音を追加するようにしてみました。

from pydub import AudioSegment
import os

# 音声パス
INPUT_RESORCE_FOLDER = os.getcwd() + "/resources/material/audio/"
OUTPUT_RESOURCE_FOLDER = os.getcwd() + "/resources/material/audio/"

""""
オーディオに無音を追加を出力します.
Parameters
----------
output_path : String
    音声の出力パス
inputh_path : String
    音声の入力パス
sec : int
    トータルの時間
"""
def add_silence_to_audio(output_path, inputh_path, sec):
    sourceAudio = AudioSegment.from_wav(output_path)
    time = (sec * 1000 - len(sourceAudio))
    if (time > 0):
        silent = AudioSegment.silent(duration = time)
    c = sourceAudio + silent
    c.export(inputh_path, format="wav")

''''
オーディオに無音を追加
'''
def run():
    print("=== START Encode Audio ===")
    add_silence_to_audio( OUTPUT_RESOURCE_FOLDER + "hello.wav", INPUT_RESORCE_FOLDER + "hello2.wav", 5)
    print("=== End Encode Audio ===")
    

if __name__ == '__main__':
    # 日付を指定
    run()

無音を追加する部分はシンプルなプログラムで演算処理で可能です。

c = sourceAudio + silent

1秒の音声 5秒の音声 シンプルなプログラムなので実際の結果を見るとちゃんと5秒になっていました。 演算子で時間制御ができるので色々調整はできそうです。