오디오의 속도를 변경하지 않고 사운드 피치를 변경 한 다음 wav 또는 mp3 파일에 저장하려는 경우 Java on을 사용하여 몇 가지 사운드 효과를 만드는 것이 좋습니다. 안드로이드, 내가 그렇게 명확한 방법을 찾지 못했습니다, 읽을 수있는 자습서가 있습니까?Java (Android)를 사용하여 오디오 피치 변경하기
답변
약간의 연구를 거친 후, 나는 당신이하려고하는 것이 "피치 쉬프트 (pitch shifting)"라고 생각했습니다. 사운드의 피치를 변경하고 자동으로 재생 속도를 변경하기 때문에 사운드 패킷과 관련하여 많은 수학 및 조작이 필요합니다. 오디오를 여전히 "정상적인"것으로 간주하면서 원하는 속도로 되돌리려면 공원에 산책 할 필요가 없습니다.
Unity3D는 C#을 사용하기 때문에이 오픈 소스 라이브러리를 사용하여 필요한 사운드 효과를 얻을 수 있습니다. 그것은 NAudio (또한 오픈 소스 및 C#)를 기반으로하므로 이론적으로 프로젝트에서 프로젝트의 일부 또는 일부를 사용할 수 있어야합니다.
다음은 음악 신호의 음높이를 높이거나 낮출 수있는 Stephan M. Bernsee의 smbPitchShift.cpp라는 간단하고 가치있는 자습서 기능에 대한 링크입니다.
피치를 변경하지 않고도 음악을 느리게하거나 빠르게 할 수있었습니다. 대신 원래 피치를 변경하지 않고 시간을 늘리려면 리샘플링을 적용해야 할 수 있습니다.
Bernsee가 GitHub에서 링크 된 버전부터 코드에 몇 가지 변경 사항을 만들었습니다. 그의 새로운 코드는 그의 웹 사이트에서 다운로드 할 수 있습니다. 원래의 사양에서 벗어나는 범위가 증가 할 수 있습니다. 그의 원래 코드를 수정하여 시프트를 8 배 올릴 수있었습니다.
하지 알 수 없다는 것입니다 자바,하지만 난 C 코드에서 알고리즘을 이해하려고 노력할 것입니다, 감사합니다 : D 조 –
나는 피치 쉬프트에 대해 읽을 수 있지만 생각 나는, 어쨌든 내가 그 도서관에서 살펴 보겠습니다 코드로 구현하는 방법을 정말 감사 –