위에서 파일을 고르면 바로 열립니다.준비됨 — 인터넷을 끊어도 이대로 동작합니다.이 브라우저에서는 쓸 수 없습니다 (나머지는 그대로 동작합니다).오프라인 저장에는 https:// 또는 localhost가 필요합니다.여기서는 저장할 수 없지만, 어느 쪽이든 올라가는 것은 없습니다.파일은 어디로도 가지 않았습니다. 파일 {total}개를 불러왔고 모두 이 사이트의 것입니다. {platform}무언가가 {hosts}에 접속했는데, 이 도구는 절대 그러지 않습니다. 살펴볼 만합니다. {platform}광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일이나 그 1바이트도 받지 않았습니다.광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일이나 그 1바이트도 받지 않았습니다.문제가 생겼습니다: {detail}. 처음부터 다시 하려면 페이지를 새로 고치세요.파일 {count}개를 읽는 중…파일 {count}개를 읽는 중…예시로 해 보기예시를 만드는 중…이 브라우저에서는 예시를 만들지 못했습니다. 대신 파일을 골라 주세요.
오디오 자르기 — 녹음을 온라인에서 다듬기
재생하면서 남길 곳에 표시하십시오. 표시한 만큼이 한 파일로, 말한 자리에서 잘려 돌아옵니다.
내 녹음을 읽고, 표시하고, 자르고, 써 내는 일은 전부 내 브라우저가 내 하드웨어에서 합니다. 이 도구에는 네트워크 기능이 아예 없어서 가져올 것도 보낼 것도 없고, 설령 길이 있다 해도 이 페이지 반대편에는 녹음을 받아 줄 서버 자체가 없습니다.
✗ 업로드 없음
✗ 가입 없음
✗ 워터마크 없음
✓ 원하는 만큼 여러 구간
✓ 표시한 자리에서 정확히 잘림
✓ 오프라인 동작
실시간 확인:확인 중…
오프라인:확인 중…
그냥 믿지 마시고 직접 확인해 보세요. 개발자 도구의 '네트워크' 탭을 켜 놓고 뭔가를 잘라 보십시오. 샘플도, 파일 이름도, 고른 파일의 단 1바이트도 실려 나가는 요청이 없습니다. 아니면 인터넷을 끊고 그냥 녹음을 잘라 보셔도 됩니다. 자르려고 오디오를 어딘가로 보내는 도구라면 그대로 멈출 테니까요.
이 약속을 직접 확인하는 방법
내 녹음은 나갈 곳이 없습니다. Content-Security-Policy에는 이 페이지가 연결할 수 있는 주소가 전부 적혀 있고, 그중 이 사이트 것은 하나도 없습니다. 파일이 모일 수 있는 수신처가 여기엔 없고, 있다 한들 그리로 보낼 코드도 없습니다.
여기서는 아무것도 가져오지 않습니다. 이 도구에는 네트워크 기능이 아예 없습니다. 붙여 넣을 주소도 없고, 내려받을 것도 없고, 처음 쓸 때 들어오는 엔진도 없습니다. 내 오디오에 닿는 코드는 한 바이트도 빠짐없이 페이지를 불러올 때 이 출처에서 온 것입니다.
디코더는 브라우저에 이미 들어 있는 그것입니다. 파일은 decodeAudioData에 넘겨집니다. <audio> 요소에서 노래를 재생하는 바로 그 코드입니다. 내 포맷을 읽으려고 여기서 무언가를 함께 보내지도 않고, 읽으려고 이 페이지 바깥의 무엇에 부탁하지도 않습니다.
동영상의 화면은 아예 디코딩되지 않습니다. 동영상을 끌어다 놓으면 오디오 트랙만 요청됩니다. 프레임은 읽히지도, 풀리지도, 그려지지도, 들여다 보이지도 않습니다. 이 페이지에는 그럴 수 있는 코드가 없고, 나오는 파일에는 소리 말고는 아무것도 없습니다.
자르기는 이 기기 메모리 안에서의 복사입니다. 자른다는 것은 구간마다, 채널마다 set을 한 번씩 하는 일입니다. 남긴 샘플들이 내가 놓은 순서대로 새 배열로 옮겨집니다. 무언가와 곱해지는 샘플은 각 페이드 안의 수백 개뿐이고, 그 개수는 버튼을 누르기 전에 페이지가 알려 줍니다.
샘플은 그대로 적힐 뿐, 다시 인코딩되지 않습니다. WAV는 이 페이지가 들고 있는 샘플 앞에 헤더를 붙인 것입니다. 중간에서 내 녹음에 대해 판단을 내리는 인코더는 없고, 그런 일이 벌어질 '업로드'라고 부를 만한 것도 없습니다.
표시 파일은 이 페이지 안에서 만들어집니다. 표시를 저장하면 이미 화면에 있는 숫자들로 텍스트 파일을 만들어 바로 다운로드로 보냅니다. 불러오기도 여기서 읽습니다. 둘 다 네트워크 근처에 가지 않고, 둘 다 시간 말고는 아무것도 싣지 않습니다.
구글이 불러오는 것과, 구글에게 주지 않는 것. 광고와 측정 스크립트는 구글에서 옵니다. 둘 중 어느 쪽에도 내 녹음에 관한 것은 넘어가지 않습니다. 파일도, 샘플도, 이름도, 크기도, 길이도, 어디서 잘랐는지도 마찬가지입니다. 읽고 자르고 써 내는 코드는 한 줄도 빠짐없이 이 출처에서 제공되고 저장소에 공개되어 있습니다.
후원 버튼이 불러오는 것과, 거기에 주지 않는 것. 머리글의 'Buy me a coffee' 버튼은 cdnjs.buymeacoffee.com의 스크립트가 그리고 글꼴은 Google Fonts에서 가져옵니다. 그것은 링크 이상은 아닙니다. 방문을 알리지도 않고, 나에 대해서도 내 녹음에 대해서도 건네받는 것이 없습니다.
오프라인에서도 동작합니다. 네트워크를 끊어도 이 페이지의 모든 것이 그대로 동작합니다. 가장 간단한 증거입니다.
직접 확인해 보세요. 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 dist 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다:
먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 config/site.toml, 표시와 그것이 저장되는 파일은 src/segments.js, 내 파일을 브라우저 자체 디코더에 넘기는 스무 줄은 src/shared/audio-decode.js, 표시를 샘플 구간으로 바꾸는 계산과 그것을 복사하는 반복문은 src/trim.js, 그 앞에 붙는 헤더는 src/shared/wav.js입니다. 어느 것도 요청을 보낼 수 있는 것을 들여오지 않습니다.
회사 보안 소프트웨어가 업로드를 경고한다면. 그것은 브라우저에서 파일이 선택되는 순간을 지켜보며, 페이지가 그것을 보낼 생각인지는 알 수 없습니다 — 그래서 고르는 순간에 경고합니다. 여기서는 아무것도 보내지 않습니다. 브라우저 개발자 도구를 열고 네트워크 탭으로 옮긴 뒤 파일을 골라 보세요. 그것을 실어 나르는 요청은 없고, 이 페이지 자체의 로컬 미리보기 말고는 요청 자체가 없습니다. 같은 확인을 IT 팀도 삼십 초면 할 수 있습니다.
1 녹음 고르기
파일
—
용량
—
길이
—
소리
—
읽은 방식
—
2 원하는 부분에 표시하기
끝까지 틀어 놓고, 구간이 시작될 자리에서 I를, 끝날 자리에서 O를 누르십시오. 몇 번이든 좋습니다. 한 쌍마다 아래에 한 줄이 되고, 완성된 파일은 그 줄들이 차례로 이어진 것입니다. U는 직전 하나를 되돌리고, 스페이스는 재생과 일시정지, 화살표 키는 5초씩 건너뜁니다. Shift를 함께 누르면 10밀리초씩 움직입니다.
표시는 일반 텍스트 파일로 저장됩니다. 한 줄이 한 구간이고 형식은 위에서 고른 대로입니다. 그래서 오래 표시한 작업이 탭을 닫아도 남고, 같은 파일을 동영상 자르기나 그 배열을 읽는 다른 도구에 건넬 수도 있습니다.
0:00.0000:00.000
속도
구간 아직 없음
남기는 길이 합계 0:00.000
#
시작
끝
길이
동작
아직 표시한 것이 없습니다. 재생하면서 I를 누른 다음 O를 누르거나, 위의 버튼을 쓰십시오.
3 자르기
어떻게 쓸지 WAV는 샘플을 있는 그대로 담기 때문에, 써 내는 것만으로 품질이 깎이지 않습니다. 다만 작은 파일은 아닙니다. 아래 예상치를 보십시오.
소리를 읽는 중…그 파일은 읽지 못했습니다: {why}그 파일은 비어 있습니다.이 브라우저가 그 파일에서 소리를 하나도 꺼내지 못했습니다. 디코딩하지 못하는 형식이거나, 파일에 오디오 트랙이 아예 없거나입니다. MP3, WAV, FLAC, M4A, MP4, MOV, WebM, Ogg는 모두 되고 AVI, WMA, 대부분의 MKV는 안 됩니다.그 파일에는 소리가 없습니다 — 디코딩해도 아무것도 나오지 않았습니다.{channels}, {khz} kHz{rate} Hz (파일에 적힌 값){rate} Hz (가정한 값)이 형식은 이 도구가 읽는 어떤 머리말에도 어떤 주파수로 녹음했는지 적어 두지 않아서 48 kHz로 디코딩했습니다. 녹음이 다른 주파수로 되었다면 브라우저가 읽어 들이면서 다시 표본화했고 — 여기서 정확하지 않은 것은 그 하나뿐입니다.모노스테레오{n}채널아직 열린 것이 없습니다. 부분이 시작할 자리에서 I를, 끝날 자리에서 O를 누르세요.그러면 부분이 {at}에서 끝나는데, 시작인 {start}보다 앞입니다. 재생 위치를 시작보다 뒤로 먼저 옮기세요.여기에는 부분을 더할 만큼 녹음이 남아 있지 않습니다. 재생 위치를 뒤로 물리세요.{name}의 하나뿐인 부분을 지울까요?{name}의 부분 {n}개를 모두 지울까요?부분 {n}: {from} ~ {to}아직 없음 — 녹음 전체{total}개 중 {finished}개이 부분 재생위로아래로삭제저장할 표시가 아직 없습니다.그 파일에서 구간을 하나도 읽지 못했습니다. 첫 줄 다음의 각 줄은 쉼표로 나눈 시작과 끝이어야 합니다.{name}의 모든 부분이 이 녹음이 끝난 뒤에 시작합니다. 다른 녹음에 표시한 것일 가능성이 큽니다.{name}의 부분 1개가 이 녹음의 끝을 지나 시작해서 빼 두었습니다.{name}의 부분 {n}개가 이 녹음의 끝을 지나 시작해서 빼 두었습니다.1줄은 부분으로 읽지 못했습니다.{n}줄은 부분으로 읽지 못했습니다.{n}개를 불러왔습니다.{name}을(를) 읽지 못했습니다: {why}{n}개 부분{n}개 부분이음매 {n}곳이음매 {n}곳가장자리 {n}곳가장자리 {n}곳{a} {b}{a} · {b}없음 — 표시가 녹음 전체를 덮습니다표시된 것 없음0초표시한 것이 빠지고 나면 {parts}표시하신 바로 그 자리, 표본 {sample}부터없음 — 한 부분뿐, 손대지 않음없음 — 한 부분뿐, 잘린 가장자리에 페이드{joins}, 그중 {edges}에 페이드{joins}, 페이드 없음{channels}, {khz} kHz, {depth}16비트32비트 부동소수점표시된 것이 없으니 잘리는 것도 없습니다. 디코더가 만들어 낸 표본을 순서대로 전부, 어디에도 페이드 없이 씁니다. 형식만 바뀌고 그 외에는 아무것도 아닙니다.모든 부분이 표시하신 바로 그 표본에서 잘리고, 무엇에도 무엇을 곱하지 않습니다. 자른 자리가 낱말 한가운데면 이음매에서 딸깍 소리가 들릴 수 있는데, 파형이 튀는 소리이지 잘못된 것이 아닙니다.{ms} ms — 표본 약 {samples}개 — 부분의 처음에서 올리고 끝에서 내려서 이음매가 딸깍거릴 수 없게 합니다. 실제로 잘린 가장자리만 받습니다. 녹음의 맨 처음이나 맨 끝 가장자리는 그대로 둡니다.{ms} ms — 표본 약 {samples}개 — 부분의 처음에서 올리고 끝에서 내려서 이음매가 딸깍거릴 수 없게 합니다. 실제로 잘린 가장자리만 받습니다. 녹음의 맨 처음이나 맨 끝 가장자리는 그대로 두므로, 여기서는 가장자리 1곳에 페이드가 들어갑니다.{ms} ms — 표본 약 {samples}개 — 부분의 처음에서 올리고 끝에서 내려서 이음매가 딸깍거릴 수 없게 합니다. 실제로 잘린 가장자리만 받습니다. 녹음의 맨 처음이나 맨 끝 가장자리는 그대로 두므로, 여기서는 가장자리 {n}곳에 페이드가 들어갑니다.남길 것이 없습니다. 부분을 표시하시거나 “남기기”로 되돌리세요.시작하는 중…{total}개 중 {done}번째 부분을 복사하는 중…파일을 쓰는 중…남기라고 표시된 것이 없습니다.WAV, {depth}{seconds}초소리를 자르는 중에 문제가 생겼습니다.WAV에는 채널이 적어도 하나 필요합니다채널마다 길이가 다릅니다그러면 4 GB가 넘는 WAV가 되는데, 형식이 그만한 크기를 적어 두지 못합니다. 32비트 부동소수점 대신 16비트를 쓰거나 더 짧은 구간으로 해 보세요.{n} B{n} KB{n} MB{n} GB오디오는 어디로도 가지 않았습니다. 파일 {total}개를 불러왔습니다. {platform}무언가가 {hosts}에 접속했는데, 이 도구는 절대 그러지 않습니다. {platform}광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일을 받지 않았습니다.광고와 측정과 후원 버튼을 위한 이 사이트 자신의 스크립트가 호스트 {hosts}곳에서 왔습니다. 그중 어느 쪽도 파일을 받지 않았습니다.
원하는 결과가 나왔나요?
무엇이 잘못됐나요?
고맙습니다 — 큰 도움이 됩니다.
보내지는 것은 답변뿐이고, 그것도 버튼을 눌렀을 때만입니다. 파일도, 파일 이름도, 파일에 관한 어떤 정보도 보내지 않습니다.
# 오디오 자르기 — 녹음을 온라인에서 다듬기
재생하면서 남길 곳에 표시하십시오. 표시한 만큼이 한 파일로, 말한 자리에서 잘려 돌아옵니다.
> 녹음을 틀어 놓고 지나가는 대로 남길 부분마다 표시한 다음, 그 부분들을 한 파일로 저장합니다. 샘플 단위로 정확히 잘리고, 이음매에서 딱 소리가 나지 않으며, 아무것도 업로드되지 않습니다.
이 페이지는 브라우저 안에서만 동작하는 대화형 도구입니다(https://abox.tools/ko/오디오-자르기/). 도구에 넘긴 어떤 것도 업로드되지 않습니다. 아래는 이 페이지가 도구에 대해 글로 설명하는 내용 전부입니다. 도구를 쓰려면 이 주소를 여세요.
## 녹음은 **절대 업로드되지 않습니다**. 서버가 아예 없으니까요.
내 녹음을 읽고, 표시하고, 자르고, 써 내는 일은 전부 내 브라우저가 내 하드웨어에서 합니다. 이 도구에는 네트워크 기능이 아예 없어서 가져올 것도 보낼 것도 없고, 설령 길이 있다 해도 이 페이지 반대편에는 녹음을 받아 줄 서버 자체가 없습니다.
- ✗ 업로드 없음
- ✗ 가입 없음
- ✗ 워터마크 없음
- ✓ 원하는 만큼 여러 구간
- ✓ 표시한 자리에서 정확히 잘림
- ✓ 오프라인 동작
## 오디오 파일을 자르는 방법
1. **녹음을 고릅니다.** MP3, WAV, FLAC, M4A, Ogg, Opus 파일을 선택 영역에 끌어다 놓으십시오. 원하는 것이 동영상 소리의 일부라면 동영상을 놓아도 됩니다. 브라우저가 디스크에서 바로 읽어 파형으로 그리고, 그동안 무엇도 어디로 나가지 않습니다.
2. **재생하면서 원하는 부분에 표시합니다.** 구간이 시작될 자리에서 `I`를, 끝날 자리에서 `O`를 누르십시오. 몇 번이든 좋습니다. 한 쌍마다 아래 표의 한 줄이 되고, 파형 위의 한 띠가 됩니다. `U`는 직전 하나를 되돌리고, `스페이스`는 재생과 일시정지, 화살표 키는 5초씩 건너뛰며, `Shift`를 함께 누르면 10밀리초씩 움직입니다. 그 순간을 잡기 어려우면 재생 속도를 늦추십시오.
3. **표시를 다듬습니다.** 각 줄은 따로 들어 볼 수 있고, 정확한 시간을 적어 넣어 다시 맞추거나, 순서를 위아래로 옮기거나, 지울 수 있습니다. 고른 구간의 양 끝은 파형 위에서 끌 수도 있는데, 숨소리가 아니라 무음 쪽에 표시를 놓는 가장 빠른 방법입니다. 위에 나오는 합계가 완성된 녹음의 길이입니다.
4. **남기거나, 잘라 냅니다.** 남기는 쪽이 보통입니다. 완성된 녹음은 표시한 구간들을 순서대로 이어 붙인 것이 됩니다. 잘라 내는 쪽은 사람들이 원하면서도 좀처럼 찾지 못하는 기능입니다. '음...' 하는 소리, 울린 전화, 잘못 시작한 부분에 표시하면 나머지가 그것들을 뺀 채로 이어집니다.
5. **자르고 내려받습니다.** 모든 자름은 표시한 샘플 자리에 떨어집니다. 여기에는 키프레임으로 반올림하는 일이 없습니다. 소리에는 그런 것이 없으니까요. 고를 만한 것은 이음매마다 페이드를 얼마나 줄지 하나뿐입니다. 5밀리초면 딱 소리를 막기에 충분하고, 페이드로 들리기에는 턱없이 짧습니다. 나오는 것은 WAV이고, 페이지에서 먼저 재생된 다음 바로 브라우저의 다운로드로 넘어갑니다.
## 자세한 설명
[음질을 잃지 않고 오디오 자르는 법](https://abox.tools/ko/가이드/오디오-파일-자르기/): 오디오의 잘린 자리가 실제로 어디에 떨어지는지, 영상에서는 안 되는 정확함이 왜 오디오에서는 되는지, 이어 붙인 자리가 왜 가끔 딱 소리를 내는지, 그리고 5밀리초 페이드가 실제로 하는 일.
## 상자 속 다른 도구
- [오디오 편집](https://abox.tools/ko/오디오-편집/): 거꾸로 돌리고, 배속을 바꾸고, 작게 녹음된 소리를 키웁니다. 전부 내 기기 안에서.
- [PDF 합치기 & 나누기](https://abox.tools/ko/pdf-합치기/): 서버를 한 바퀴 돌지 않고 페이지를 옮깁니다.
- [PDF 압축](https://abox.tools/ko/pdf-용량-줄이기/): 문서를 어디에도 보내지 않고 가볍게 만듭니다.
- [PDF 가리기](https://abox.tools/ko/pdf-가리기/): 글자를 파일에서 지우고, 지운 뒤에 파일을 검색해서 증명합니다.
## 자주 묻는 질문
### 제 오디오가 어딘가로 업로드되나요?
아닙니다. 읽고, 표시하고, 자르고, 써 내는 일은 내 브라우저가 내 하드웨어에서 합니다. 이 도구에는 서버 쪽이 없고, 페이지의 `Content-Security-Policy`에는 연결할 수 있는 주소가 전부 적혀 있는데 그중 이 사이트 것은 없습니다. 듣는 것보다 확인이 낫다면 인터넷을 끊고 그냥 녹음을 잘라 보십시오.
### 같은 녹음에서 여러 구간을 남길 수 있나요?
그러라고 만든 도구입니다. 재생하는 동안 `I`와 `O`를 원하는 만큼 누르십시오. 한 쌍마다 한 줄이 되고, 완성된 파일은 그 줄들을 순서대로 이어 붙인 것이며 나머지는 전부 빠집니다. 대부분의 온라인 자르기 도구는 손잡이 한 쌍만 주고 어느 한 구간을 남길지 묻습니다. 시그널 음악의 앞뒤를 정리하는 데는 충분하지만, 한 시간짜리 인터뷰를 한 번만 들으면서 쓸 만한 답변 여섯 개를 남기는 데는 전혀 쓸모가 없습니다.
### 자르는 자리가 표시한 곳에 정확히 떨어지나요?
떨어집니다. 모든 구간에서, 어떤 재생기에서든 그렇습니다. 여기가 오디오가 영상보다 단순한 유일한 지점입니다. 디코딩된 녹음은 숫자의 연속이고 하나하나가 스스로 서 있어서, 키프레임에 해당하는 것도 없고 되돌려 반올림할 자리도 없으며 자름이 앞당겨질 이유도 없습니다. 페이지는 결과가 시작되는 샘플 번호를 보여 주는데, 이는 내가 찍은 표시에 표본화 주파수를 곱해 가장 가까운 정수 샘플로 반올림한 값입니다.
### 이음매에서 왜 딱 소리가 나고, 페이드는 무엇을 위한 건가요?
어떤 낱말 가운데에서 다른 낱말 가운데로 자르면 아무 상관 없는 두 파형이 나란히 놓이고, 그 사이를 뛰라고 요구받은 스피커가 딱 소리를 내기 때문입니다. 자름의 결함이 아니라, 불연속이라는 것이 원래 그렇게 들립니다. 해법은 이음매 양쪽에 몇 밀리초짜리 페이드를 주는 것입니다. 콘이 따라올 만큼은 길고, 페이드로 들리기에는 턱없이 짧습니다. 기본값은 5밀리초이고 끌 수도 있습니다. 페이드는 실제로 자른 가장자리에만 붙으므로, 녹음의 맨 앞이나 맨 끝 가장자리는 있던 그대로 남습니다.
### 반대로 나쁜 부분을 잘라 낼 수도 있나요?
있습니다. 그 부분에 표시하고 '잘라 내기'를 고르십시오. 표시하지 *않은* 쪽이 대신 순서대로 이어집니다. 같은 표시 목록이 두 질문에 다 답하므로, 오가며 길이가 달라지는 것을 확인해도 아무것도 두 번 표시할 필요가 없습니다.
### 표시를 저장했다가 나중에 이어서 할 수 있나요?
있습니다. '표시 저장'은 일반 텍스트 파일을 씁니다. 한 줄이 한 구간이고 시작과 끝이 쉼표로 나뉩니다. '표시 불러오기'는 그것을 다시 읽습니다. 형식은 두 가지가 있습니다. 순수한 초와 `HH:MM:SS.mmm`인데, 둘 다 이 사이트의 동영상 자르기가 쓰는 것과 같은 배열입니다. 그래서 동영상에 맞춰 만든 파일을 그 오디오에 놓을 수도 있고 그 반대도 됩니다. 표시는 품이 드는 일이고, 두 번 할 일은 아닙니다.
### 어떤 형식을 열 수 있나요?
브라우저가 디코딩할 수 있는 것이면 무엇이든입니다. 실제로는 MP3, WAV, FLAC, M4A와 AAC, Ogg Vorbis와 Opus, 그리고 MP4, M4V, MOV, WebM 동영상 속의 오디오가 됩니다. 빠지는 것은 어디서나 같은 짧은 목록, AVI와 WMA, 그리고 대부분의 MKV입니다. 이 브라우저가 읽지 못할 파일은 중간에 실패하는 대신 그렇다고 알려 주며 받지 않습니다.
### 왜 MP3가 아니라 WAV로 저장하나요?
어떤 브라우저도 MP3 인코더를 갖고 나오지 않고, 이 도구는 그걸 가진 서버로 내 녹음을 보내기를 거부하기 때문입니다. WAV에는 인코더가 전혀 필요 없습니다. 샘플 앞에 짧은 헤더를 붙인 것이니까요. 그래서 정직한 선택인 동시에, 나가는 길에 품질을 깎지 않는 유일한 선택이기도 합니다. 대신 큽니다. 스테레오로 1분에 10메가바이트쯤 됩니다. 어떤 재생기도, 휴대폰도, 편집 프로그램도 열 수 있고, MP3가 필요하면 거기서 만들면 됩니다. MP3를 프레임 복사로 자르면 파일은 작게 유지되지만, 모든 자름이 가장 가까운 프레임 경계로 옮겨 갑니다. 그 반올림을 하지 않으려고 이 도구가 있는 것입니다.
### 녹음 길이에 제한이 있나요?
도구에 박아 둔 제한은 없습니다. 실제 한계는 메모리입니다. 녹음 전체가 이 페이지 안으로 한 번에 디코딩되고, WAV도 내려받기 전에 메모리에서 조립되므로, 스테레오 한 시간이면 1기가바이트에 조금 못 미치는 작업 공간이 필요합니다. 4기가바이트짜리 WAV는 아예 거절합니다. 그 포맷의 크기 필드 자체가 그런 파일을 표현하지 못하니까요.
### 무료인가요? 가입해야 하나요?
무료이고 계정도, 로그인도, 체험판도, 워터마크도 없습니다. 이 사이트는 광고로 유지되는데, 그 광고에도 내 녹음에 관한 것은 넘어가지 않습니다.
## 이 약속을 직접 확인하는 방법
- **내 녹음은 나갈 곳이 없습니다.** Content-Security-Policy에는 이 페이지가 연결할 수 있는 주소가 전부 적혀 있고, 그중 이 사이트 것은 하나도 없습니다. 파일이 모일 수 있는 수신처가 여기엔 없고, 있다 한들 그리로 보낼 코드도 없습니다.
- **여기서는 아무것도 가져오지 않습니다.** 이 도구에는 네트워크 기능이 아예 없습니다. 붙여 넣을 주소도 없고, 내려받을 것도 없고, 처음 쓸 때 들어오는 엔진도 없습니다. 내 오디오에 닿는 코드는 한 바이트도 빠짐없이 페이지를 불러올 때 이 출처에서 온 것입니다.
- **디코더는 브라우저에 이미 들어 있는 그것입니다.** 파일은 `decodeAudioData`에 넘겨집니다. `<audio>` 요소에서 노래를 재생하는 바로 그 코드입니다. 내 포맷을 읽으려고 여기서 무언가를 함께 보내지도 않고, 읽으려고 이 페이지 바깥의 무엇에 부탁하지도 않습니다.
- **동영상의 화면은 아예 디코딩되지 않습니다.** 동영상을 끌어다 놓으면 오디오 트랙만 요청됩니다. 프레임은 읽히지도, 풀리지도, 그려지지도, 들여다 보이지도 않습니다. 이 페이지에는 그럴 수 있는 코드가 없고, 나오는 파일에는 소리 말고는 아무것도 없습니다.
- **자르기는 이 기기 메모리 안에서의 복사입니다.** 자른다는 것은 구간마다, 채널마다 `set`을 한 번씩 하는 일입니다. 남긴 샘플들이 내가 놓은 순서대로 새 배열로 옮겨집니다. 무언가와 곱해지는 샘플은 각 페이드 안의 수백 개뿐이고, 그 개수는 버튼을 누르기 전에 페이지가 알려 줍니다.
- **샘플은 그대로 적힐 뿐, 다시 인코딩되지 않습니다.** WAV는 이 페이지가 들고 있는 샘플 앞에 헤더를 붙인 것입니다. 중간에서 내 녹음에 대해 판단을 내리는 인코더는 없고, 그런 일이 벌어질 '업로드'라고 부를 만한 것도 없습니다.
- **표시 파일은 이 페이지 안에서 만들어집니다.** 표시를 저장하면 이미 화면에 있는 숫자들로 텍스트 파일을 만들어 바로 다운로드로 보냅니다. 불러오기도 여기서 읽습니다. 둘 다 네트워크 근처에 가지 않고, 둘 다 시간 말고는 아무것도 싣지 않습니다.
- **구글이 불러오는 것과, 구글에게 주지 않는 것.** 광고와 측정 스크립트는 구글에서 옵니다. 둘 중 어느 쪽에도 내 녹음에 관한 것은 넘어가지 않습니다. 파일도, 샘플도, 이름도, 크기도, 길이도, 어디서 잘랐는지도 마찬가지입니다. 읽고 자르고 써 내는 코드는 한 줄도 빠짐없이 이 출처에서 제공되고 저장소에 공개되어 있습니다.
- **후원 버튼이 불러오는 것과, 거기에 주지 않는 것.** 머리글의 'Buy me a coffee' 버튼은 cdnjs.buymeacoffee.com의 스크립트가 그리고 글꼴은 Google Fonts에서 가져옵니다. 그것은 링크 이상은 아닙니다. 방문을 알리지도 않고, 나에 대해서도 내 녹음에 대해서도 건네받는 것이 없습니다.
- **오프라인에서도 동작합니다.** 네트워크를 끊어도 이 페이지의 모든 것이 그대로 동작합니다. 가장 간단한 증거입니다.
**직접 확인해 보세요.** 위에 적은 어느 것도 그냥 믿으실 필요는 없습니다. 이 페이지는 저장소 안의 템플릿과 설정을 빌드 스크립트가 찍어 낸 결과이고, 그 스크립트는 누구나 읽고 직접 돌려 볼 수 있습니다. 결과물은 `dist` 브랜치에 그대로 올라가 있고요. 그래서 실제로 제공되는 파일과 소스를 빌드한 결과를 나란히 놓고 비교해 보실 수 있습니다: https://github.com/A-Box-of-Tools/website
먼저 읽어 볼 파일을 꼽자면, Content-Security-Policy는 `config/site.toml`, 표시와 그것이 저장되는 파일은 `src/segments.js`, 내 파일을 브라우저 자체 디코더에 넘기는 스무 줄은 `src/shared/audio-decode.js`, 표시를 샘플 구간으로 바꾸는 계산과 그것을 복사하는 반복문은 `src/trim.js`, 그 앞에 붙는 헤더는 `src/shared/wav.js`입니다. 어느 것도 요청을 보낼 수 있는 것을 들여오지 않습니다.
오디오 파일을 자르는 방법
녹음을 고릅니다. MP3, WAV, FLAC, M4A, Ogg, Opus 파일을 선택 영역에 끌어다 놓으십시오. 원하는 것이 동영상 소리의 일부라면 동영상을 놓아도 됩니다. 브라우저가 디스크에서 바로 읽어 파형으로 그리고, 그동안 무엇도 어디로 나가지 않습니다.
재생하면서 원하는 부분에 표시합니다. 구간이 시작될 자리에서 I를, 끝날 자리에서 O를 누르십시오. 몇 번이든 좋습니다. 한 쌍마다 아래 표의 한 줄이 되고, 파형 위의 한 띠가 됩니다. U는 직전 하나를 되돌리고, 스페이스는 재생과 일시정지, 화살표 키는 5초씩 건너뛰며, Shift를 함께 누르면 10밀리초씩 움직입니다. 그 순간을 잡기 어려우면 재생 속도를 늦추십시오.
표시를 다듬습니다. 각 줄은 따로 들어 볼 수 있고, 정확한 시간을 적어 넣어 다시 맞추거나, 순서를 위아래로 옮기거나, 지울 수 있습니다. 고른 구간의 양 끝은 파형 위에서 끌 수도 있는데, 숨소리가 아니라 무음 쪽에 표시를 놓는 가장 빠른 방법입니다. 위에 나오는 합계가 완성된 녹음의 길이입니다.
남기거나, 잘라 냅니다. 남기는 쪽이 보통입니다. 완성된 녹음은 표시한 구간들을 순서대로 이어 붙인 것이 됩니다. 잘라 내는 쪽은 사람들이 원하면서도 좀처럼 찾지 못하는 기능입니다. '음...' 하는 소리, 울린 전화, 잘못 시작한 부분에 표시하면 나머지가 그것들을 뺀 채로 이어집니다.
자르고 내려받습니다. 모든 자름은 표시한 샘플 자리에 떨어집니다. 여기에는 키프레임으로 반올림하는 일이 없습니다. 소리에는 그런 것이 없으니까요. 고를 만한 것은 이음매마다 페이드를 얼마나 줄지 하나뿐입니다. 5밀리초면 딱 소리를 막기에 충분하고, 페이드로 들리기에는 턱없이 짧습니다. 나오는 것은 WAV이고, 페이지에서 먼저 재생된 다음 바로 브라우저의 다운로드로 넘어갑니다.
자세한 설명
음질을 잃지 않고 오디오 자르는 법오디오의 잘린 자리가 실제로 어디에 떨어지는지, 영상에서는 안 되는 정확함이 왜 오디오에서는 되는지, 이어 붙인 자리가 왜 가끔 딱 소리를 내는지, 그리고 5밀리초 페이드가 실제로 하는 일.
아닙니다. 읽고, 표시하고, 자르고, 써 내는 일은 내 브라우저가 내 하드웨어에서 합니다. 이 도구에는 서버 쪽이 없고, 페이지의 Content-Security-Policy에는 연결할 수 있는 주소가 전부 적혀 있는데 그중 이 사이트 것은 없습니다. 듣는 것보다 확인이 낫다면 인터넷을 끊고 그냥 녹음을 잘라 보십시오.
같은 녹음에서 여러 구간을 남길 수 있나요?
그러라고 만든 도구입니다. 재생하는 동안 I와 O를 원하는 만큼 누르십시오. 한 쌍마다 한 줄이 되고, 완성된 파일은 그 줄들을 순서대로 이어 붙인 것이며 나머지는 전부 빠집니다. 대부분의 온라인 자르기 도구는 손잡이 한 쌍만 주고 어느 한 구간을 남길지 묻습니다. 시그널 음악의 앞뒤를 정리하는 데는 충분하지만, 한 시간짜리 인터뷰를 한 번만 들으면서 쓸 만한 답변 여섯 개를 남기는 데는 전혀 쓸모가 없습니다.
자르는 자리가 표시한 곳에 정확히 떨어지나요?
떨어집니다. 모든 구간에서, 어떤 재생기에서든 그렇습니다. 여기가 오디오가 영상보다 단순한 유일한 지점입니다. 디코딩된 녹음은 숫자의 연속이고 하나하나가 스스로 서 있어서, 키프레임에 해당하는 것도 없고 되돌려 반올림할 자리도 없으며 자름이 앞당겨질 이유도 없습니다. 페이지는 결과가 시작되는 샘플 번호를 보여 주는데, 이는 내가 찍은 표시에 표본화 주파수를 곱해 가장 가까운 정수 샘플로 반올림한 값입니다.
이음매에서 왜 딱 소리가 나고, 페이드는 무엇을 위한 건가요?
어떤 낱말 가운데에서 다른 낱말 가운데로 자르면 아무 상관 없는 두 파형이 나란히 놓이고, 그 사이를 뛰라고 요구받은 스피커가 딱 소리를 내기 때문입니다. 자름의 결함이 아니라, 불연속이라는 것이 원래 그렇게 들립니다. 해법은 이음매 양쪽에 몇 밀리초짜리 페이드를 주는 것입니다. 콘이 따라올 만큼은 길고, 페이드로 들리기에는 턱없이 짧습니다. 기본값은 5밀리초이고 끌 수도 있습니다. 페이드는 실제로 자른 가장자리에만 붙으므로, 녹음의 맨 앞이나 맨 끝 가장자리는 있던 그대로 남습니다.
반대로 나쁜 부분을 잘라 낼 수도 있나요?
있습니다. 그 부분에 표시하고 '잘라 내기'를 고르십시오. 표시하지 않은 쪽이 대신 순서대로 이어집니다. 같은 표시 목록이 두 질문에 다 답하므로, 오가며 길이가 달라지는 것을 확인해도 아무것도 두 번 표시할 필요가 없습니다.
표시를 저장했다가 나중에 이어서 할 수 있나요?
있습니다. '표시 저장'은 일반 텍스트 파일을 씁니다. 한 줄이 한 구간이고 시작과 끝이 쉼표로 나뉩니다. '표시 불러오기'는 그것을 다시 읽습니다. 형식은 두 가지가 있습니다. 순수한 초와 HH:MM:SS.mmm인데, 둘 다 이 사이트의 동영상 자르기가 쓰는 것과 같은 배열입니다. 그래서 동영상에 맞춰 만든 파일을 그 오디오에 놓을 수도 있고 그 반대도 됩니다. 표시는 품이 드는 일이고, 두 번 할 일은 아닙니다.
어떤 형식을 열 수 있나요?
브라우저가 디코딩할 수 있는 것이면 무엇이든입니다. 실제로는 MP3, WAV, FLAC, M4A와 AAC, Ogg Vorbis와 Opus, 그리고 MP4, M4V, MOV, WebM 동영상 속의 오디오가 됩니다. 빠지는 것은 어디서나 같은 짧은 목록, AVI와 WMA, 그리고 대부분의 MKV입니다. 이 브라우저가 읽지 못할 파일은 중간에 실패하는 대신 그렇다고 알려 주며 받지 않습니다.
왜 MP3가 아니라 WAV로 저장하나요?
어떤 브라우저도 MP3 인코더를 갖고 나오지 않고, 이 도구는 그걸 가진 서버로 내 녹음을 보내기를 거부하기 때문입니다. WAV에는 인코더가 전혀 필요 없습니다. 샘플 앞에 짧은 헤더를 붙인 것이니까요. 그래서 정직한 선택인 동시에, 나가는 길에 품질을 깎지 않는 유일한 선택이기도 합니다. 대신 큽니다. 스테레오로 1분에 10메가바이트쯤 됩니다. 어떤 재생기도, 휴대폰도, 편집 프로그램도 열 수 있고, MP3가 필요하면 거기서 만들면 됩니다. MP3를 프레임 복사로 자르면 파일은 작게 유지되지만, 모든 자름이 가장 가까운 프레임 경계로 옮겨 갑니다. 그 반올림을 하지 않으려고 이 도구가 있는 것입니다.
녹음 길이에 제한이 있나요?
도구에 박아 둔 제한은 없습니다. 실제 한계는 메모리입니다. 녹음 전체가 이 페이지 안으로 한 번에 디코딩되고, WAV도 내려받기 전에 메모리에서 조립되므로, 스테레오 한 시간이면 1기가바이트에 조금 못 미치는 작업 공간이 필요합니다. 4기가바이트짜리 WAV는 아예 거절합니다. 그 포맷의 크기 필드 자체가 그런 파일을 표현하지 못하니까요.
무료인가요? 가입해야 하나요?
무료이고 계정도, 로그인도, 체험판도, 워터마크도 없습니다. 이 사이트는 광고로 유지되는데, 그 광고에도 내 녹음에 관한 것은 넘어가지 않습니다.