Đây là phiên bản âm thanh của thử thách mã hóa hình ảnh Twitter .
Thiết kế định dạng nén âm thanh có thể biểu thị ít nhất một phút nhạc bằng 140 byte hoặc ít hơn văn bản được mã hóa UTF-8 có thể in được.
Thực hiện nó bằng cách viết chương trình dòng lệnh có 3 đối số sau (sau tên của chính chương trình):
- Chuỗi
encode
haydecode
. - Tên tệp đầu vào.
- Tên tệp đầu ra.
(Nếu ngôn ngữ lập trình ưa thích của bạn thiếu khả năng sử dụng đối số dòng lệnh, bạn có thể sử dụng một cách tiếp cận khác, nhưng phải giải thích nó trong câu trả lời của bạn.)
Các encode
hoạt động sẽ chuyển đổi từ định dạng âm thanh lựa chọn của bạn sang định dạng “tweet” nén của bạn, và các decode
hoạt động sẽ chuyển đổi từ định dạng “tweet” của bạn sang định dạng âm thanh gốc. (Tất nhiên, bạn sẽ thực hiện nén mất dữ liệu, vì vậy tệp đầu ra không cần phải giống hệt với đầu vào, chỉ ở cùng định dạng.)
Bao gồm trong câu trả lời của bạn:
- Mã nguồn của chương trình của bạn, đầy đủ. (Nếu quá dài cho trang này, bạn có thể lưu trữ nó ở nơi khác và đăng một liên kết đến nó.)
- Một lời giải thích về cách thức hoạt động.
- Ít nhất một ví dụ, với một liên kết đến (các) tệp âm thanh gốc, văn bản tweet tweet tweet mà nó nén xuống và tệp âm thanh thu được bằng cách giải mã tweet. (Người trả lời chịu trách nhiệm về bản quyền khẳng định sử dụng công bằng.
Quy tắc
- Tôi bảo lưu quyền đóng bất kỳ sơ hở nào trong thể lệ cuộc thi bất cứ lúc nào.
- [Đã chỉnh sửa ngày 24 tháng 4] Đối với đầu vào của
encode
chức năng của bạn (và đầu ra củadecode
chức năng của bạn ), bạn có thể sử dụng bất kỳ định dạng âm thanh phổ biến, hợp lý nào, cho dù đó là:- Dạng sóng không nén, như WAV.
- Dạng sóng nén, như MP3.
- Bản nhạc của phong cách trực tuyến, giống như MIDI.
- Định dạng tweet tweet của bạn đã nén phải thực sự mã hóa âm thanh trong tệp đầu vào. Vì vậy, các loại đầu ra sau đây không được tính:
- Đường dẫn URI hoặc tệp cho vị trí lưu trữ đầu ra thực tế.
- Khóa cho bảng cơ sở dữ liệu nơi đầu ra thực tế được lưu trữ dưới dạng blob.
- Bất cứ điều gì tương tự.
- Chương trình của bạn phải được thiết kế để nén các tệp nhạc chung , vì vậy đừng làm những thứ quá rõ ràng gắn với bài hát ví dụ cụ thể của bạn. Ví dụ: nếu bạn đang trình diễn Twinkle, Twinkle, Little Star ", thói quen nén của bạn không nên mã hóa một biểu tượng cụ thể cho chuỗi do-do-so-so-la-la-so.
- Đầu ra của chương trình của bạn thực sự sẽ có thể đi qua Twitter và đi ra ngoài vô tư. Tôi không có danh sách các ký tự chính xác được hỗ trợ, nhưng cố gắng bám vào các chữ cái, chữ số, ký hiệu và dấu chấm câu; và tránh các ký tự điều khiển, kết hợp các ký tự, các dấu BIDI hoặc các thứ lạ khác như thế.
- Bạn có thể gửi nhiều hơn một mục.
Tiêu chuẩn đánh giá
Đây là một cuộc thi phổ biến (nghĩa là hầu hết các cuộc bầu chọn mạng đều thắng), nhưng các cử tri được khuyến khích xem xét những điều sau đây:
Độ chính xác
- Bạn vẫn có thể nhận ra bài hát sau khi nó được nén?
- Nghe có vẻ tốt?
- Bạn vẫn có thể nhận ra nhạc cụ nào đang được chơi?
- Bạn vẫn có thể nhận ra lời bài hát? (Điều này có lẽ là không thể, nhưng sẽ rất ấn tượng nếu có ai hoàn thành nó.)
Phức tạp
Sự lựa chọn của bài hát ví dụ quan trọng ở đây.
- [Đã thêm ngày 24 tháng 4] Thử thách này sẽ dễ dàng nhất với MIDI hoặc các định dạng tương tự. Tuy nhiên, nếu bạn nỗ lực thêm để làm cho nó hoạt động với các định dạng dạng sóng, điều đó xứng đáng được thêm tín dụng.
- Cấu trúc là gì? Chắc chắn, bạn có thể đáp ứng yêu cầu một phút bằng cách lặp lại cùng 4 biện pháp một số lần tùy ý. Nhưng cấu trúc bài hát phức tạp hơn xứng đáng nhiều điểm hơn.
- Định dạng có thể xử lý rất nhiều ghi chú đang được phát cùng một lúc không?
Mật mã
- Giữ nó càng ngắn và đơn giản càng tốt. Tuy nhiên, đây không phải là một mã golf, vì vậy khả năng đọc quan trọng hơn số lượng ký tự.
- Thông minh, các thuật toán phức tạp cũng ổn, miễn là chúng được chứng minh bằng chất lượng kết quả được cải thiện.