[파이썬] pydub 오디오 감지 및 인식

PyDub은 파이썬 기반의 오디오 처리 라이브러리입니다. 이 라이브러리를 사용하면 간편하게 오디오 파일을 로드하고, 수정하고, 변환할 수 있습니다. 이번 블로그에서는 PyDub을 사용하여 오디오를 감지하고, 인식하는 방법에 대해 알아보겠습니다.

1. PyDub 설치하기

PyDub을 사용하기 위해 먼저 설치해야 합니다. 아래 명령어를 사용하여 PyDub을 설치해주세요.

pip install pydub

2. 오디오 파일 로드하기

먼저, PyDub을 사용하기 위해 필요한 AudioSegment 클래스를 임포트합니다.

from pydub import AudioSegment

그리고 오디오 파일을 로드합니다.

audio_file = AudioSegment.from_file("audio_file.mp3", format="mp3")

위의 예제에서는 audio_file.mp3라는 파일을 로드하고 있습니다. 필요에 따라서 파일 포맷을 지정할 수 있습니다.

3. 오디오 감지

PyDub을 사용하여 오디오를 감지하려면 audio_file 객체의 detect_silence() 메서드를 사용합니다. 이 메서드는 오디오 파일에서 정지 구간을 감지하고 반환합니다.

silence_ranges = audio_file.detect_silence(min_silence_duration=500, silence_thresh=-40)

위의 예제에서는 최소한 500ms 동안의 정지 구간을 감지하고, 신호 대 잡음 비율을 -40dB로 설정하고 있습니다.

4. 오디오 인식

오디오 인식은 오디오 파일에서 음성을 추출하고, 텍스트로 변환하는 과정을 말합니다.

PyDub은 오디오 인식을 직접 지원하지 않지만, Google Speech-to-Text, IBM Watson 등과 같은 오디오 인식 API와 통합하여 사용할 수 있습니다. 이러한 서비스는 오디오 파일을 전송하고, 응답으로 텍스트를 받아옵니다.

여기서는 Google Cloud의 Speech-to-Text 서비스를 사용하여 오디오를 인식하는 예제를 보여드리겠습니다. 먼저, 필요한 패키지를 설치합니다.

pip install google-cloud-speech

그리고 다음과 같이 코드를 작성해보세요.

from google.cloud import speech_v1p1beta1 as speech

def recognize_speech(audio_file):
    client = speech.SpeechClient()

    audio = speech.RecognitionAudio(uri=audio_file)
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=44100,
        language_code="en-US",
    )

    response = client.recognize(config=config, audio=audio)
    for result in response.results:
        print("Transcript: {}".format(result.alternatives[0].transcript))

위의 예제에서는 google-cloud-speech 패키지를 사용하여 Google Cloud의 Speech-to-Text 서비스와 통신합니다. audio_file은 인식할 오디오 파일의 경로입니다.

마무리

이번 블로그에서는 PyDub을 사용하여 오디오 감지 및 인식하는 방법에 대해 알아보았습니다. PyDub은 간단한 인터페이스를 제공하여 오디오 처리 작업을 쉽게 수행할 수 있도록 도와줍니다. 여러분의 프로젝트에 PyDub을 적용하여 다양한 오디오 작업을 해보세요!