Могу ли я записывать звук до тишины ИЛИ до максимальной длины записи?

Вопрос или проблема

Смотря на обнаружение звука до тех пор, пока не наступит тишина, я пришёл к команде rec recording.flac rate 32k silence -l 1 0.1 3% 1 3.0 3%.

Я понимаю, что мое конкретное использование будет несколько иным: я действительно хочу записывать, пока не будет обнаружена тишина, но я также хочу верхний предел, скажем, 10-15 секунд, того, как долго будет продолжаться запись, прежде чем перейти к следующему. Я могу просто добавить команду timeout 15s, что даст мне максимальное время речи в (15 секунд – ведущая тишина, которая будет варьироваться), но есть ли способ сказать sox, что мне нужны только первые x секунд записи, что дало бы мне максимальное время речи в 15 секунд независимо от ведущей тишины?

Вы можете использовать эффект trim; например, trim 0 15 передаст только первые 15 секунд аудио. Вы можете поставить его перед или после silence:

  • Если перед silence, этот эффект будет «слышать» только 15 секунд и, возможно, выдаст меньше, если была тишина, которую нужно удалить из этих 15 секунд.
  • Если после silence, trim будет «слышать» аудио с уже удалённой тишиной и остановится после 15 секунд не-тихого звука.

Ответ или решение

Да, вы можете организовать запись звука с использованием утилиты Sox, чтобы она останавливалась либо при обнаружении тишины, либо по достижении максимальной длительности записи. Для достижения этой цели вы можете воспользоваться командой, которая сочетает в себе возможности обнаружения тишины с ограничением по времени.

Пример команды, которую вы можете использовать, выглядит следующим образом:

timeout 15s rec recording.flac rate 32k silence -l 1 0.1 3% 1 3.0 3%

Подробное объяснение

  1. Использование команды timeout:

    • Этот компонент команды ограничивает общее время выполнения записи, в данном случае — 15 секунд. Это означает, что после истечения 15 секунд программа автоматически завершится, даже если звук все еще записывается.
  2. Команда rec:

    • rec — это основная команда для записи, которая будет сохранять звук в файл recording.flac. Вы можете изменить название файла и его формат в соответствии с вашими предпочтениями.
  3. Параметр rate 32k:

    • Этот параметр устанавливает частоту дискретизации записи на 32 кГц, что является стандартом для многих аудиозаписей и обеспечивает хорошее качество звука.
  4. Обнаружение тишины с помощью silence:

    • Параметры silence -l 1 0.1 3% 1 3.0 3% позволяют включить функции обнаружения тишины, чтобы завершить запись, как только будет обнаружено определенное количество тишины. В данном случае:
      • -l 1 указывает, что будет использовано 1 уровень тишины.
      • 0.1 — это порог длительности звучания до определения тишины (0.1 секунды).
      • 3% — порог уровня звука (звучание должно быть тише 3% от максимума).
      • 1 3.0 3% — эти параметры указывают на информацию о тишине (3 секунды тишины на втором уровне для завершения записи).

Важные моменты

  1. Порядок выполнения эффектов:

    • Если вы хотите записывать звук, не превышая 15 секунд с учетом тишины, убедитесь, что timeout стоит в начале команды, чтобы избежать случайной перезаписи заданного времени.
    • Если вы хотите записывать те первые 15 секунд, даже если они тихие, используйте trim 0 15 перед обработкой на предмет тишины:
      rec recording.flac rate 32k trim 0 15 silence -l 1 0.1 3% 1 3.0 3%
  2. Эффективное использование:

    • Вы можете использовать различные варианты, накладывая дополнительные эффекты и условия в зависимости от ваших предпочтений и требований к записи, такие как изменение формата или качества аудиофайла.

Таким образом, с помощью вышеописанной конфигурации команды вы можете эффективно записывать аудио, фиксируя его либо до наступления тишины, либо до достижения 15-секундного порога, что позволяет наилучшим образом управлять данными звуковыми записями.

Оцените материал
Добавить комментарий

Капча загружается...