Linux команда aplay с примерами практического применения

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе вы научитесь использовать команду aplay в Linux, которая является частью утилит ALSA (Advanced Linux Sound Architecture). Команда aplay предоставляет пользовательский интерфейс к системе звука ALSA, позволяя воспроизводить аудиофайлы из командной строки. Вы начнете с установки необходимых пакетов для использования aplay, а затем изучите различные параметры и флаги, чтобы воспроизводить аудиофайлы по-разному.

В лабе рассмотрены следующие шаги: установка необходимых пакетов для aplay, использование команды aplay для воспроизведения аудиофайлов и изучение доступных параметров и флагов команды aplay. Этот лаб призван дать вам практические примеры и твердый понять команды aplay, которая может быть полезным инструментом для управления воспроизведением аудио в вашей среде Linux.

Linux Commands Cheat Sheet


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/PackagesandSoftwaresGroup -.-> linux/wget("Non-interactive Downloading") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/wget -.-> lab-422545{{"Linux команда aplay с примерами практического применения"}} linux/apt -.-> lab-422545{{"Linux команда aplay с примерами практического применения"}} end

Установка необходимых пакетов для aplay

В этом шаге мы установим необходимые пакеты для использования команды aplay в Linux. Команда aplay является частью утилит ALSA (Advanced Linux Sound Architecture), которые предоставляют пользовательский интерфейс к системе звука ALSA.

Во - первых, обновим индекс пакетов:

sudo apt-get update

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

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Fetched 324 kB в 1s (324 kB/s)
Чтение списков пакетов... Готово

Далее, установим пакет alsa-utils, который содержит команду aplay и другие утилиты ALSA:

sudo apt update
sudo apt-get install -y alsa-utils

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

Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение状态информации... Готово
Следующие дополнительные пакеты будут установлены:
  alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
Рекомендуемые пакеты:
  alsa-oss
Следующие НОВЫЕ пакеты будут установлены:
  alsa-firmware-loaders alsa-topology-conf alsa-ucm-conf alsa-utils libatopology2 libsnd-dev libsndfile1 libsndfile1-dev
0 обновлено, 8 новых установлено, 0 удалить и 0 не обновлено.
Необходимо получить 1,265 kB архивов.
После этой операции будет использовано дополнительно 5,120 kB дискового пространства.
Вы хотите продолжить? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-firmware-loaders amd64 1.2.4-1 [12.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-topology-conf all 1.2.4-1 [11.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-ucm-conf all 1.2.4-1 [89.0 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy/main amd64 alsa-utils amd64 1.2.6-1ubuntu1 [1,153 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy/main amd64 libatopology2 amd64 1.2.4-1 [13.9 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsnd-dev amd64 1.0.29-1 [18.0 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1 amd64 1.0.31-2 [111 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libsndfile1-dev amd64 1.0.31-2 [57.1 kB]
Fetched 1,265 kB в 1s (1,265 kB/s)
Выбираем ранее невыбранный пакет alsa-firmware-loaders.
(Чтение базы данных... 123412 файлов и директорий текущих установленных.)
Подготавливаемся к распаковке.../alsa-firmware-loaders_1.2.4-1_amd64.deb...
Распаковываем alsa-firmware-loaders (1.2.4-1)...
Выбираем ранее невыбранный пакет alsa-topology-conf.
Подготавливаемся к распаковке.../alsa-topology-conf_1.2.4-1_all.deb...
Распаковываем alsa-topology-conf (1.2.4-1)...
Выбираем ранее невыбранный пакет alsa-ucm-conf.
Подготавливаемся к распаковке.../alsa-ucm-conf_1.2.4-1_all.deb...
Распаковываем alsa-ucm-conf (1.2.4-1)...
Выбираем ранее невыбранный пакет alsa-utils.
Подготавливаемся к распаковке.../alsa-utils_1.2.6-1ubuntu1_amd64.deb...
Распаковываем alsa-utils (1.2.6-1ubuntu1)...
Выбираем ранее невыбранный пакет libatopology2:amd64.
Подготавливаемся к распаковке.../libatopology2_1.2.4-1_amd64.deb...
Распаковываем libatopology2:amd64 (1.2.4-1)...
Выбираем ранее невыбранный пакет libsnd-dev:amd64.
Подготавливаемся к распаковке.../libsnd-dev_1.0.29-1_amd64.deb...
Распаковываем libsnd-dev:amd64 (1.0.29-1)...
Выбираем ранее невыбранный пакет libsndfile1:amd64.
Подготавливаемся к распаковке.../libsndfile1_1.0.31-2_amd64.deb...
Распаковываем libsndfile1:amd64 (1.0.31-2)...
Выбираем ранее невыбранный пакет libsndfile1-dev:amd64.
Подготавливаемся к распаковке.../libsndfile1-dev_1.0.31-2_amd64.deb...
Распаковываем libsndfile1-dev:amd64 (1.0.31-2)...
Настраиваем alsa-firmware-loaders (1.2.4-1)...
Настраиваем alsa-topology-conf (1.2.4-1)...
Настраиваем alsa-ucm-conf (1.2.4-1)...
Настраиваем libatopology2:amd64 (1.2.4-1)...
Настраиваем libsnd-dev:amd64 (1.0.29-1)...
Настраиваем libsndfile1:amd64 (1.0.31-2)...
Настраиваем libsndfile1-dev:amd64 (1.0.31-2)...
Настраиваем alsa-utils (1.2.6-1ubuntu1)...
Обрабатываем триггеры для man-db (2.10.2-1)...
Обрабатываем триггеры для libc-bin (2.35-0ubuntu3)...

Теперь необходимые пакеты для команды aplay установлены, и мы можем перейти к следующему шагу.

Воспроизведение аудиофайлов с использованием команды aplay

В этом шаге мы научимся использовать команду aplay для воспроизведения аудиофайлов в Linux.

Во - первых, загрузим пример аудиофайл для использования в наших примерах:

wget https://www.soundjay.com/button/sounds/beep-07.wav -O ~/project/beep.wav

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

--2023-04-12 08:31:33--  https://www.soundjay.com/button/sounds/beep-07.wav
Resolving www.soundjay.com (www.soundjay.com)... 104.24.108.5, 104.24.109.5
Connecting to www.soundjay.com (www.soundjay.com)|104.24.108.5|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11174 (11K) [audio/x-wav]
Saving to: '~/project/beep.wav'

~/project/beep.wav     100%[===================>]  10.92K  --.-KB/s    in 0s

2023-04-12 08:31:33 (128 MB/s) - '~/project/beep.wav' saved [11174/11174]

Теперь воспроизведем аудиофайл с использованием команды aplay:

aplay ~/project/beep.wav

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

Playing WAVE '/home/labex/project/beep.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

Вы должны слышать аудиофайл через динамики или наушники вашей системы.

Для остановки воспроизведения нажмите Ctrl+C.

Команда aplay поддерживает различные параметры для управления воспроизведением аудио, таких как настройка громкости, зацикливание аудио и т.д. Мы рассмотрим эти параметры на следующем шаге.

Изучение параметров и флагов команды aplay

В этом последнем шаге мы изучим некоторые доступные параметры и флаги для команды aplay.

Начнем с отображения меню помощи для команды aplay:

aplay --help

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

Usage: aplay [OPTION]... [FILE]...
Воспроизводит файл звука PCM.

Параметры:
  -h, --help             помощь
  -D, --device=NAME      установить имя устройства
  -c, --channels=NUM     установить количество каналов
  -f, --format=FORMAT    установить формат образца
  -r, --rate=RATE        установить частоту дискретизации
  -t, --type=TYPE        установить тип файла
  -v, --version          показать версию
  -V, --verbose          показать параметры оборудования PCM
  -q, --quiet            тихий режим
  -l, --list-devices     вывести список всех звуковых карт и цифровых аудиоустройств
  -L, --list-pcm         вывести список всех устройств PCM
  -Xalsa-opts            передать параметры для ALSA - бэкенда

Некоторые полезные параметры, которые можно попробовать:

  • Воспроизвести аудиофайл в цикле:

    aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav -l 3

    Это будет воспроизводить файл beep.wav в стерео (2 канала), с частотой дискретизации 44,1 кГц, в формате 16 - битного little - endian и зациклить его 3 раза.

  • Изменить громкость:

    aplay -c 2 -r 44100 -f S16_LE ~/project/beep.wav --volume 50

    Это будет воспроизводить файл beep.wav при 50% громкости.

  • Вывести список доступных аудиоустройств:

    aplay -l

    Это выведет список всех доступных аудиоустройств в вашей системе.

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

Резюме

В этом лабе мы научились устанавливать необходимые пакеты для использования команды aplay в Linux, которая является частью утилит ALSA (Advanced Linux Sound Architecture). Мы обновили индекс пакетов и установили пакет alsa-utils, который содержит команду aplay и другие утилиты ALSA. Затем мы изучили параметры и флаги команды aplay, которые позволяют нам воспроизводить аудиофайлы и настраивать параметры воспроизведения.

В лабе рассмотрено практическое использование команды aplay, включая воспроизведение аудиофайлов и понимание доступных параметров и флагов. Эти знания могут быть применены в различных задачах, связанных с аудио, в среде Linux.

Linux Commands Cheat Sheet