Các mục Bộ lọc Bộ lọc của máy tự động có thể xử lý nhạc dựa trên độ dài không?


1

Tôi muốn tạo một quy trình làm việc tự động hóa để tìm các tệp âm thanh nhất định trong một thư mục, nhưng tôi muốn nó xem xét thời lượng của các tệp đó. Tôi đang tìm kiếm các mẫu âm thanh khá ngắn dưới 2 giây. Nó dường như không có khả năng lọc theo thời lượng. Có cách nào khác để thực hiện điều này trong Automator không?

Ngoài ra, tôi có thể dễ dàng tạo Thư mục thông minh có chứa những gì tôi đang tìm kiếm, nhưng sau đó Automator không thể tìm thấy nội dung của Thư mục thông minh đã nói để tiếp tục thao tác chúng. Có cách nào để lấy nội dung của một thư mục thông minh trong Automator không?


Những loại tập tin âm thanh? Có nhiều loại khác nhau, ví dụ: .mp3, .aiff, v.v? Chỉ có tệp âm thanh ở vị trí đích? Bạn sẽ làm gì với các tệp có thời lượng dưới 2 giây? Tôi có thể cho bạn một bash tập lệnh có thể cô lập các tệp âm thanh với thời lượng dưới 2 giây nếu điều đó hữu ích. Nó có thể được sử dụng trong một hành động Run Shell Script trong Automator tuy nhiên có thể tốt hơn nếu bạn thêm dòng công việc vào câu hỏi.
user3439894

Điều đó sẽ giúp, trên thực tế có ai đó đang thực hiện một kịch bản hoàn thành mục tiêu cuối cùng của tôi, nhưng có một vấn đề với không gian mà chúng tôi chưa thể khắc phục nên tôi đã tìm hiểu các giải pháp khác. Xem apple.stackexchange.com/questions/280950/ cho toàn bộ trường hợp sử dụng.
Jonathan van Clute

Tôi đã xem nhanh những gì bạn liên kết trong bình luận và không muốn đối phó với nó vì đã muộn. Tôi sẽ xem xét nó vào ngày mai. Tôi sẽ đăng câu trả lời giải quyết việc lọc các tệp nhạc có thời lượng dưới 2 giây cho câu hỏi này mà không liên quan đến câu hỏi khác cho đến khi tôi có thể kiểm tra kỹ câu hỏi khác.
user3439894

Nó phụ thuộc vào định dạng âm nhạc. macos không được tích hợp hỗ trợ cho hầu hết các định dạng âm thanh hữu ích (thậm chí không phải flac và opus), vì vậy đối với chúng chắc chắn việc sử dụng chỉ mục và mã của riêng bạn dễ dàng hơn. lợi ích bổ sung sẽ là bạn có thể làm cho nó đa nền tảng.
Sarge Borsch

Tôi chỉ lọc các tập tin wav và aif, phần đó rất dễ. Vấn đề bây giờ là làm cho mã được cung cấp dưới đây hoạt động với giây phân đoạn.
Jonathan van Clute

Câu trả lời:


2

Giả sử bạn có một số hoạt động đó là đi các tập tin đến một Bộ lọc Tìm mục hoạt động , thiết lập như Tìm tệp trong đó: Tất cả những điều sau đây là đúng Loại là âm nhạc .

Điều này đảm bảo những gì được chuyển qua tiếp theo hoạt động , một Chạy Shell Script hoạt động , thiết lập như Vỏ: / thùng / bash Truyền đầu vào dưới dạng đối số là những tập tin âm nhạc.

Thay thế mặc định bên trong Chạy Shell Script hoạt động , có các cài đặt ở trên, với các mục sau :

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print int($3)}')"
    if [[ $d -lt 2 ]]; then
        echo "$f"
    fi
done

Kết quả của những điều trên với tên đường dẫn đầy đủ của các tệp nhạc có thời lượng dưới 2 giây và được chuyển sang tệp tiếp theo hoạt động như một danh sách .


Để giải quyết nhận xét thứ hai của bạn cho câu trả lời ban đầu của tôi, hãy sử dụng như sau thay cho ở trên:

for f in "$@"; do
    d="$(afinfo -r "$f" | awk '/estimated duration:/{print $3}')"
    if (( $(echo "1.5 > $d" | bc -l) )); then
        echo "$f"
    fi
done

Vâng nóng chết tiệt. Cho đến nay với kịch bản của bạn, một dòng từ kịch bản trong câu hỏi khác và một chút Tự động hóa, tôi đã có một giải pháp làm việc. Tôi sẽ chơi với nó thêm một chút nữa để xem nó có bị hỏng ở bất cứ đâu không và trả lời với kết quả vào ngày mai. Nhưng theo như câu hỏi cụ thể này, câu trả lời của bạn đóng đinh nó. Cảm ơn!
Jonathan van Clute

Chuột, một câu hỏi khác. Điều này có thể được thực hiện để sử dụng thời lượng không nguyên? Giống như nếu tôi muốn 1,5 giây hoặc ít hơn thì sao? Tôi không thể làm cho nó hoạt động theo cách đó, không chắc những gì cần thiết.
Jonathan van Clute

@Jonathan van Clute, tôi đã cập nhật câu trả lời để xử lý các số dấu phẩy động.
user3439894

Rất tuyệt vời! Tôi gần như đã tìm ra nó nhưng không có khả năng sẽ đến đó một lúc. Cảm ơn một lần nữa!
Jonathan van Clute

@Jonathan van Clute, BTW Bạn có thể đảo ngược "1.5 > $d" đến "$d < 1.5" để dễ đọc và điều chỉnh giá trị mã hóa cứng của phương trình.
user3439894
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.