Nano Hash - криптовалюты, майнинг, программирование

как обрезать аудиофайл с определенным временем из текстового файла с помощью SoX в терминале Mac?

У меня есть текстовый файл, похожий на этот текстовый файл, и я хочу использовать sox для обрезать аудиофайл в зависимости от времени в текстовом файле, поэтому у меня могут быть разные аудиоклипы от 0,0 до 6,16, от 6,16 до 13,44, от 13,44 до 17,54 и т. д.

Я понимаю, что базовый скрипт для обрезки sox — *$ sox audio.wav newaudio.wav trim starttime duration*
Но как я могу получить продолжительность из текстового файла и использовать sox для обрезки звука?

04.01.2018

  • Пожалуйста, не добавляйте код или отформатированные данные в комментарии - это неразборчиво. Вместо этого нажмите edit под своим вопросом и обновите его, чтобы он точно отражал ваш вопрос. Выберите код и используйте кнопку {} для его форматирования. Спасибо. 04.01.2018
  • Извини, Марк.. Это мой первый пост здесь. В следующий раз буду с ним осторожнее. Сейчас меняю.. 04.01.2018
  • Никаких проблем, добро пожаловать. Удачи с вашим проектом и помните, что вопросы и ответы бесплатны — так что возвращайтесь и спрашивайте больше, если вы застряли. 08.01.2018
  • Большое спасибо Марк! Дайте мне знать, если у вас будет возможность посетить Ньюкасл, я должен вам пинту пива! 13.01.2018

Ответы:


1

Обновленный ответ

Я думаю, что следующий код может быть ближе:

#!/bin/bash
index=0
while read this; do
   if [ $index -gt 0 ]; then
      d=$(bc <<< "$this - $start")
      echo sox audio.wav new-$index.wav trim \"$start\" \"$d\"
   fi
   ((index+=1))
   start=$this
done < times.txt

Я не использую sox, но в этом суть подхода — предполагается, что ваше время находится в файле с именем times.txt:

#!/bin/bash
index=0
while read this; do
   if [ $index -gt 0 ]; then
      echo sox audio.wav new-$index.wav trim $start $this
   fi
   ((index+=1))
   start=$this
done < times.txt

Пример вывода

sox audio.wav new-1.wav trim 0.0 6.16
sox audio.wav new-2.wav trim 6.16 13.44
sox audio.wav new-3.wav trim 13.44 17.54
sox audio.wav new-4.wav trim 17.54 23.3
sox audio.wav new-5.wav trim 23.3 26.5

Таким образом, вы должны сохранить весь этот код в файле с именем $HOME/trimmer, затем запустить Терминал и выполнить следующее, чтобы сделать скрипт исполняемым — достаточно одного раза:

chmod +x $HOME/trimmer

Затем перейдите в каталог, где находятся ваши аудиофайлы, например:

cd path/to/audio/files

затем запустите скрипт с помощью:

$HOME/trimmer

Если вам нравится, как это выглядит, удалите слово echo из скрипта и запустите его снова. Сначала сделайте резервную копию, если вы не знакомы со сценариями.

04.01.2018
  • Большое спасибо Марк! Но я хочу, чтобы мой выходной пример выглядел так: отделка 13,44 4,1 sox audio.wav new4.wav отделка 17,54 5,76}. Таким образом, второй раз в sox trim на самом деле соответствует продолжительности клипа, который вы хотите, а не секунде. Я только что изменил {$this} на {$this - $start}. 04.01.2018
  • О, хорошо, в Великобритании уже поздно, так что я посмотрю завтра, если у меня будет минутка. 04.01.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..