Приложение Audio Labeler позволяет в интерактивном режиме определять и визуализировать метки «земля-истина» для наборов аудиоданных. В этом примере показано, как можно создавать определения меток, а затем в интерактивном режиме маркировать набор аудиофайлов. В примере также показано, как экспортировать помеченные данные ground-truth, которые затем можно использовать с audioDatastore для обучения системе машинного обучения.
Чтобы открыть приложение Audio Labeler, в командной строке MATLAB ® введите:
audioLabeler
В этом примере используются аудиофайлы, входящие в состав Audio Toolbox™. Чтобы найти путь к файлу в системе, в командной строке MATLAB введите:
fullfile(matlabroot,'toolbox','audio','samples')
Чтобы загрузить аудио из файла, щелкните Загрузить > Папки аудио и выберите папку, содержащую аудиофайлы, которые требуется пометить.

Звуковые образцы включают музыку, речь и атмосферу. Создание метки уровня файла, определяющей содержимое аудиофайла как music, speech, ambience, или unknown, нажмите.
Укажите имя метки как Content, тип данных как categoricalи Категории как music, speech, ambience, или unknown. Задайте значение по умолчанию для определения метки, равное unknown.

Все аудиофайлы в браузере данных теперь связаны с Content имя метки. Чтобы прослушать аудиофайл, выбранный в браузере данных, и подтвердить, что он является музыкальным файлом, нажмите.
Установка значения Contents метка, нажмите unknown на панели «Метки файлов» и выберите music из раскрывающегося меню.
Выбранный аудиофайл теперь имеет имя метки Content со значением music назначен ему. Вы можете продолжить установку Content для каждого файла выберите файл в браузере данных, а затем выберите значение на панели «Метки файлов».
Можно определить метки на уровне региона вручную или с помощью предоставленных автоматизированных алгоритмов. Audio Toolbox включает в себя алгоритмы автоматической маркировки для обнаружения речи и транскрипции речи в текст.
Примечание
Чтобы включить автоматическую транскрипцию речи в текст, необходимо загрузить и настроить функцию транскрипции речи в текст. После загрузки и настройки функции транскрипции «речь-текст» на панели инструментов появляется алгоритм автоматизации «Речь-текст».
Выбрать Counting-16-44p1-mono-15secs.wav в браузере данных.
Чтобы создать метку уровня региона, указывающую, обнаружена ли речь, сначала выберите Детектор речи (Speech Detector) в разделе АВТОМАТИЗАЦИЯ (AUTOMATION). Управлять алгоритмом обнаружения речи можно с помощью параметров Длина окна (Window Length (s)) и Область слияния (Merge Regions Within (s)). Используйте параметры по умолчанию для алгоритма обнаружения речи. Для создания метки окупаемости инвестиций и областей меток выбранного аудиофайла выберите «Выполнить».

Закройте вкладку Детектор речи. Можно исправить или точно настроить автоматически созданные области SpeechDetected, выбрав ROI в строке ROI, а затем перетащив края области. Панель окупаемости инвестиций находится непосредственно справа от метки окупаемости инвестиций. При выборе области щелчком мыши
воспроизводится только выбранная область, что позволяет проверить, захватывает ли выбранная область всю соответствующую слуховую информацию.

Если вы настроили службу транскрипции «речь-текст», выберите «Речь-текст» в разделе «Автоматизация». Можно управлять транскрипцией «речь-текст» с помощью опций пары «имя-значение», специфичных для выбранной службы. В этом примере используется служба IBM ® и дополнительные параметры не указаны.

Метки ROI, возвращаемые службой транскрипции, представляют собой строки с начальной и конечной точками. Начальная и конечная точки не совсем соответствуют начальной и конечной точкам откорректированных вручную областей обнаружения речи. Можно исправить конечные точки метки окупаемости инвестиций SpeechContent, выбрав область и перетащив края области. Служба транскрипции неправильно классифицировала слова «два» как «to», «четыре» как «for» и «десять» как «then». Можно исправить строку, выбрав область и введя новую строку.
Создайте еще одну метку уровня области, щелкнув
значок на панели «Метки окупаемости инвестиций». Задать для имени метки значение VUV, задайте для параметра «Тип данных» значение categoricalи категории для voiced и unvoiced.

По умолчанию программа просмотра формы сигнала отображает весь файл. Для отображения инструментов масштабирования и панорамирования наведите курсор на правый верхний угол графика. Увеличьте изображение первых пяти секунд аудиофайла.
При выборе области на графике и наведении курсора на любую из двух полос окупаемости инвестиций появляется тень области. Чтобы назначить выбранную область озвученной категории, щелкните одну из них на панели меток SpeechContent. Наведите курсор на панель меток VUV, затем щелкните тень и выберите voiced.

Следующие два слова, «два» и «три», содержат как озвученную, так и невокализированную речь. Выберите каждую область речи на графике, наведите курсор на строку меток VUV и выберите правильную категорию для этой области.

Определения меток можно экспортировать как MAT-файл или как сценарий MATLAB. Сохранение определений меток позволяет согласованно маркировать пользователей и сеансы. Выберите «Экспорт» > «Определения меток» > «В файл».

Метки сохраняются в виде массива signalLabelDefinition объекты. В следующей сессии можно импортировать определения меток, выбрав «Импорт» > «Определения меток» > «Из файла».
Набор маркированных сигналов можно экспортировать в файл или в рабочее пространство. Выберите «Экспорт» > «Метки» > «В рабочую область».
Приложение Audio Labeler создает labeledSignalSet объект с именем labeledSet_HHMMSS, где HHMMSS - время создания объекта в часах, минутах и секундах.
labeledSet_104620
labeledSet_104620 =
labeledSignalSet with properties:
Source: {29×1 cell}
NumMembers: 29
TimeInformation: "inherent"
Labels: [29×4 table]
Description: ""
Use labelDefinitionsHierarchy to see a list of labels and sublabels.
Use setLabelValue to add data to the set.Созданные метки сохраняются как таблица в Labels собственность.
labeledSet_142356.Labels
ans =
29×4 table
Content SpeechDetected SpeechContent VUV
________ ______________ _____________ ___________
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Ambiance-16-44p1-mono-12secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\AudioArray-16-16-4channels-20secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\ChurchImpulseResponse-16-44p1-mono-5secs.wav unknown { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Click-16-44p1-mono-0.2secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Counting-16-44p1-mono-15secs.wav speech {10×2 table} {10×2 table} {5×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Engine-16-44p1-stereo-20sec.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FemaleSpeech-16-8-mono-3secs.wav speech { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FunkyDrums-44p1-stereo-25secs.mp3 music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FunkyDrums-48-stereo-25secs.mp3 music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Heli_16ch_ACN_SN3D.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\JetAirplane-16-11p025-mono-16secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Laughter-16-8-mono-4secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\MainStreetOne-24-96-stereo-63secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\NoisySpeech-16-22p5-mono-5secs.wav speech { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Rainbow-16-8-mono-114secs.wav speech { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RainbowNoisy-16-8-mono-114secs.wav speech { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RandomOscThree-24-96-stereo-13secs.aif music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockDrums-44p1-stereo-11secs.mp3 music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockDrums-48-stereo-11secs.mp3 music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockGuitar-16-44p1-stereo-72secs.wav music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockGuitar-16-96-stereo-72secs.flac music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\SoftGuitar-44p1_mono-10mins.ogg music { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\SpeechDFT-16-8-mono-5secs.wav speech { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\TrainWhistle-16-44p1-mono-9secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Turbine-16-44p1-mono-22secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-44p1-stereo-10secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-8-mono-1000secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-8-mono-200secs.wav ambience { 0×2 table} { 0×2 table} {0×2 table}
C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WaveGuideLoopOne-24-96-stereo-10secs.aif music { 0×2 table} { 0×2 table} {0×2 table}Имена файлов, связанные с метками, сохраняются в виде массива ячеек в Source собственность.
labeledSet_104620.Source
ans =
29×1 cell array
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Ambiance-16-44p1-mono-12secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\AudioArray-16-16-4channels-20secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\ChurchImpulseResponse-16-44p1-mono-5secs.wav'}
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Click-16-44p1-mono-0.2secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Counting-16-44p1-mono-15secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Engine-16-44p1-stereo-20sec.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FemaleSpeech-16-8-mono-3secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FunkyDrums-44p1-stereo-25secs.mp3' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\FunkyDrums-48-stereo-25secs.mp3' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Heli_16ch_ACN_SN3D.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\JetAirplane-16-11p025-mono-16secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Laughter-16-8-mono-4secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\MainStreetOne-24-96-stereo-63secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\NoisySpeech-16-22p5-mono-5secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Rainbow-16-8-mono-114secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RainbowNoisy-16-8-mono-114secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RandomOscThree-24-96-stereo-13secs.aif' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockDrums-44p1-stereo-11secs.mp3' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockDrums-48-stereo-11secs.mp3' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockGuitar-16-44p1-stereo-72secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\RockGuitar-16-96-stereo-72secs.flac' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\SoftGuitar-44p1_mono-10mins.ogg' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\SpeechDFT-16-8-mono-5secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\TrainWhistle-16-44p1-mono-9secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\Turbine-16-44p1-mono-22secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-44p1-stereo-10secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-8-mono-1000secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WashingMachine-16-8-mono-200secs.wav' }
{'C:\Program Files\MATLAB\R2019b\toolbox\audio\samples\WaveGuideLoopOne-24-96-stereo-10secs.aif' }Для продолжения процесса глубокого обучения или машинного обучения используйте audioDatastore. Использование хранилища аудиоданных позволяет применять возможности, общие для приложений машинного обучения, такие как splitEachLabel. splitEachLabel позволяет разделить данные на группы и тестовые наборы.
Создайте хранилище аудиоданных для набора маркированных сигналов. Укажите расположение аудиофайлов в качестве первого аргумента audioDatastore и установите Labels имущество audioDatastore в Labels свойства маркированного набора сигналов.
ADS = audioDatastore(labeledSet_104620.Source,'Labels',labeledSet_104620.Labels)
ADS =
audioDatastore with properties:
Files: {
' ...\toolbox\audio\samples\Ambiance-16-44p1-mono-12secs.wav';
' ...\toolbox\audio\samples\AudioArray-16-16-4channels-20secs.wav';
' ...\toolbox\audio\samples\ChurchImpulseResponse-16-44p1-mono-5secs.wav'
... and 26 more
}
Labels: 29-by-4 table
AlternateFileSystemRoots: {}
OutputDataType: 'double'
Звонить countEachLabel и укажите Content табличная переменная для подсчета количества файлов, помеченных как ambience, music, speech, или unknown.
countEachLabel(ADS,'TableVariable','Content')
ans =
4×2 table
Content Count
________ _____
ambience 13
music 9
speech 6
unknown 1 Примеры использования помеченных аудиоданных в процессе машинного обучения или глубокого обучения см. в следующих разделах:
audioDatastore | audioDeviceReader | audioDeviceWriter | labeledSignalSet | signalLabelDefinition