2014-02-19 2 views
0

wav 파일에 두 가지 사운드 효과를 구현하는 방법에 대해 올바른 방법을 생각해 보거나 설명 할 수 있습니까? 파이썬 코러스 효과와 오디오 데이터의 의미

그래서 내가 wav 파일을 읽고 내가 배열이 값이 정말로 무엇을 나타내는 지 명확히 나는 확실하지 않다, 그것은

array([59383, 58290, 60629, ..., 52606, 51982, 56274], dtype=uint16) 

먼저 (numpy 배열)의 값을 int로 변환? 모든 값은 아날로그 출력 장치가 어느 순간 생성하는 65535 (unsigned int16) 크기 수준 중 하나입니까? 이론 코러스 효과에서

은 다음 단계에 의해 달성 될 수있다 : 원래 배열

    1. 만들기 사본 (일부 value < 1 곱)이 복사 배열
    2. 을 약화시키고 원래이 복사 배열을 추가

    실제로 어떻게 올바르게 추가 할 수 있는지 잘 모릅니다. 하나씩 값을 추가하고, 두 배열의 컨볼 루션을 만들거나 원래 배열을 삽입하고 수정 된 복사본을 만들어야합니다. 또한 코러스 효과는 이어야합니다. 시간 지연과 내가 어떻게 이것을 수행 할 수 있는지 모르겠습니다.

    내가 추가 할 데이터의 임의성을 어떻게 구현할 수 있습니까?

  • +1

    아직 개념을 이해하고 있으므로이 질문을 신호 처리 포럼에 가져간 다음 개념을 이해 한 후 코드 세부 정보를 다시 참조하는 것이 좋습니다. –

    +4

    이 질문은 (아직) 프로그래밍 문제가 아니기 때문에 화제가 아닌 것처럼 보입니다 – jonrsharpe

    +0

    나는'신호 처리'에서 질문하려고 노력할 것입니다, 감사합니다! – xolodec

    답변

    1

    기본적으로 적절한 아이디어가 있습니다. 다음은 몇 가지 사항입니다.

    1) 웨이브 파일은 선형 신호 대 시간이므로 이해가 정확합니다. 많은 오디오 것들은 로그이므로 비선형이라고 생각하는 것이 비합리적인 것은 아닙니다. 예를 들어 LP는 비선형 방식으로 인코딩됩니다.

    2) 수학을 수행하려면 먼저 float 또는 int32이므로 int16의 제한을 초과하지 마십시오.

    3) 시간을 오프셋하려면 numpy 슬라이싱을 사용하십시오. 즉, new = old[1000:]+old[:-1000]과 같은 것입니다. 같은 길이의 섹션을 함께 추가해야하므로 시간 이동을 추가하는 경우 시간 이동이 짧아 지므로 전체 시간 배열을 추가 할 수 없습니다.

    4) "임의 시간"을 추가하는 경우 단일 임의 시간 동안 위의 내용을 추가 할 수 있습니다. 추가하는 동안 시간이 지속적으로 달라 지려면 원래 신호를 왜곡해야하며 더 복잡 할 것입니다.

    +0

    답변 해 주셔서 감사합니다. 그것은 나를 위해 뭔가를 분명히했다. – xolodec

    관련 문제