오디오 주파수를 변경하는 방법?


12

오디오 파일의 주파수를 변경하고 싶습니다. 의미 : 전체 파일은 1 옥타브 높거나 낮게 들려야합니다. 어떻게합니까? 사용 ffmpeg또는 다른 명령 줄 오픈 소스 툴이 바람직 할 것이다.

답변:


14

ffmpeg로 :

ffmpeg -i <input> -af asetrate=44100*0.5,aresample=44100 <output>

여기서 0.5는 피치 계수입니다. 또는 자세한 내용은 다른 답변을 참조하십시오.


GUI가 필요한 경우 Audacity를 사용 하십시오. 무료 오픈 소스 크로스 플랫폼 오디오 편집 도구입니다.

특징 : 템포를 변경하지 않고 피치를 변경하거나 그 반대로 변경하십시오.


대안으로 sox를 사용해보십시오 . 그런 것 :

sox <infile> <outfile> pitch <shift>

여기서 피치 이동은 양수 또는 음수 '센트'(즉 반음의 100 분의 1)로 나타납니다. 옥타브에는 12 개의 반음이 있으므로 1200파라미터로 ± 을 의미 합니다.


굉장한 ... 삭스는 내가 필요한 것입니다!
tanon

ffmpeg를 사용하는 방법이 오디오 지속 시간을 변경합니까?
mrgloom

@mrgloom 아니오, 그렇지 않아야합니다.
slhck

사용 후 ffmpeg -i man.wav -af asetrate=48000*0.75,aresample=48000 man_pitch_down.wav나는에 의해 참조 ffmpeg -i원본 WAV Duration: 00:00:01.95, bitrate: 3080 kb/s및 수정 WAV Duration: 00:00:02.60, bitrate: 1536 kb/s. 내가 이해하는 것처럼 Duration초 단위 길이입니다.
mrgloom

@mrgloom 새 질문을 게시하고 전체 명령 행 출력을 포함하십시오.
slhck

9

입력 오디오 속도를 미리 찾으십시오.

ffmpeg -i input.mp4

입력 오디오 속도가 44,100Hz라고 가정하면이 명령은 다음 작업을 수행합니다.

ffmpeg -i input.mp4 -af asetrate=44100*3/4,atempo=4/3 output.mp4

3/4의 요소는 대부분의 여성 및 "스키니"(다람쥐) 음성을 남성 및 "뚱뚱한"음성으로 변경합니다. 반대의 경우 4/3을 사용하십시오.

ffmpeg -i input.mp4 -af atempo=3/4,asetrate=44100*4/3 output.mp4

신호 열화를 방지하기 위해 필터 순서를 반대로하십시오. 가능할 때마다 손실없는 작동이 손실 된 작동보다 먼저 이루어져야합니다. FFmpeg 필터를 오해하여 실수하지 않는지 100 % 확신하지 못합니다.

FFmpeg 필터 에는 일부 비디오 필터에서 × 와 유사하게 입력 오디오 속도 asetrate라는 이름의 변수가 있어야 하지만 설명서에서 언급 할 수는 없습니다.iriwih

2보다 큰 요인 (예 : 4/1 또는 1/4)의 경우 여러 atempo필터 (1/4 = 1/2 * 1/2 또는 4/1 = 2/1 * 2/1) 를 사용해야합니다 .

ffmpeg -i input.mp4 -af asetrate=44100*4,atempo=1/2,atempo=1/2 output.mp4

"스키니"남성 음성과 "뚱뚱한"여성 음성을 얻는 방법을 모르겠습니다.

대신에 또는 -af을 쓸 수 있습니다 .-filter:audio-filter:a

참고 문헌

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.