이것은 트위터 이미지 인코딩 챌린지 의 오디오 버전입니다 .
140 바이트 이하의 인쇄 가능한 UTF-8 인코딩 텍스트로 1 분 이상의 음악 을 표현할 수있는 오디오 압축 형식을 디자인 하십시오.
프로그램 이름 뒤에 다음 3 개의 인수를 사용하는 명령 행 프로그램을 작성하여이를 구현하십시오.
- 문자열
encode
또는decode
. - 입력 파일 이름입니다.
- 출력 파일 이름입니다.
선호하는 프로그래밍 언어에 명령 줄 인수를 사용할 수있는 기능이 없으면 대체 방법을 사용할 수 있지만 답을 설명해야합니다.
encode
작업은 압축 "짹짹"형식으로 선택한 오디오 포맷 변환 것이며, decode
동작은 원래의 오디오 형식으로 "짹짹"형식으로 변환됩니다. (물론, 손실 압축을 구현해야하므로 출력 파일이 입력과 동일한 형식 일 필요는 없습니다.)
답변에 포함하십시오 :
- 프로그램의 소스 코드 전체입니다. (이 페이지가 너무 길면 다른 곳에서 호스팅하고 링크를 게시 할 수 있습니다.)
- 작동 방식에 대한 설명.
- 적어도 하나의 예는, 원본 오디오 파일 (들)에 대한 링크와 함께, 압축되는 "트위트"텍스트, 및 트위트를 디코딩함으로써 얻어진 오디오 파일이다. (응답자는 저작권 "공정 사용"주장에 대한 책임이 있습니다.)
규칙
- 나는 컨테스트 규칙의 허점을 언제든지 닫을 권리를 보유합니다.
- [편집 된 4 월 24 일]
encode
함수 입력 (및 함수 출력decode
)을 위해 다음에 관계없이 합리적이고 일반적인 오디오 형식을 사용할 수 있습니다.- WAV와 같은 비 압축 파형
- MP3와 같은 압축 파형.
- MIDI와 같은 "Sheet music"스타일.
- 압축 된 "트위트"형식은 실제로 입력 파일의 사운드를 인코딩해야합니다. 따라서 다음 유형의 출력은 계산 되지 않습니다 .
- 실제 출력이 저장되는 위치를 제공하는 URI 또는 파일 경로입니다.
- 실제 출력이 BLOB으로 저장되는 데이터베이스 테이블의 키입니다.
- 비슷한 것.
- 프로그램은 일반 음악 파일 을 압축하도록 설계되었으므로 특정 예제 곡과 너무 관련이있는 작업은 수행하지 마십시오. 예를 들어, "Twinkle, Twinkle, Little Star"를 시연하는 경우 압축 루틴이 do-do-so-so-la-la-so 시퀀스의 특정 기호를 하드 코딩해서는 안됩니다.
- 당신의 프로그램의 출력은 실제로 트위터를 통과하고 상처없이 나올 수 있어야합니다. 지원되는 정확한 문자 목록이 없지만 문자, 숫자, 기호 및 문장 부호를 사용하십시오. 제어 문자, 문자 결합, BIDI 마커 또는 기타 이상한 것을 피하십시오.
- 하나 이상의 출품작을 제출할 수 있습니다.
심사 기준
이것은 인기 콘테스트 (즉, 대부분의 순 공감대 승리)이지만 유권자들은 다음 사항을 고려해야합니다.
정확성
- 압축 된 후에도 노래를 계속 인식 할 수 있습니까?
- 잘 들립니까?
- 연주중인 악기를 여전히 인식 할 수 있습니까?
- 여전히 가사를 인식 할 수 있습니까? (이것은 아마도 불가능하지만, 누군가가 그것을 성취하면 인상적입니다.)
복잡성
예제 곡의 선택은 여기서 중요합니다.
- [4 월 24 일 추가] 이 과제는 MIDI 또는 유사한 형식으로 가장 쉬울 것입니다. 그러나 파형 유형 형식으로 작동하도록 추가 노력을 기울이면 추가 크레딧이 필요합니다.
- 구조는 무엇입니까? 물론, 동일한 4 개의 측정 값을 임의의 횟수만큼 반복하여 1 분 요구 사항을 충족 할 수 있습니다. 그러나 더 복잡한 곡 구조는 더 많은 점수가 필요합니다.
- 한 번에 많은 음표를 연주 할 수 있습니까?
코드
- 가능한 짧고 간단하게 유지하십시오. 그러나 이것은 코드 골프가 아니므로 가독성은 문자 수보다 중요합니다.
- 개선 된 결과 품질로 정당화되는 한 영리하고 복잡한 알고리즘도 괜찮습니다.