Приложение Audio Labeler позволяет вам в интерактивном режиме определять и визуализировать метки основной истины для наборов аудио данных. В этом примере показов, как можно создать определения меток, а затем в интерактивном режиме пометить набор аудио файлов. В примере также показано, как экспортировать маркированные достоверные данные, которые можно затем использовать с audioDatastore
для обучения системы машинного обучения.
Чтобы открыть Audio Labeler, в MATLAB® в командной строке введите:
audioLabeler
Этот пример использует аудио файлов, включенные в Audio Toolbox™. Чтобы найти путь к файлу в вашей системе, в командной строке MATLAB введите:
fullfile(matlabroot,'toolbox','audio','samples')
Чтобы загрузить аудио из файла, щелкните Load > Audio Folders и выберите папку, содержащую аудио файлов, которые вы хотите пометить.
Аудио- выборки включают музыку, речь и атмосферу. Чтобы создать метку файлового уровня, которая определяет содержимое аудио файла следующим music
, speech
, ambience
, или unknown
, нажмите. Задайте Label Name следующим Content
, а Data Type как categorical
, и Categories как music
, speech
, ambience
, или unknown
. Установите Default Value определения метки равной unknown
.
Все аудио файлов в Data Browser теперь связаны с Content
имя метки. Чтобы прослушать аудиофайл, выбранный в Data Browser, и подтвердить, что это музыкальный файл, нажмите. Чтобы задать значение Contents
Выберите метку unknown
в панели File Labels и выберите music
из раскрывающегося меню.
У выбранного аудио файла теперь есть имя метки Content
со значением music
присвоен ему. Можно продолжить настройку Content
значение для каждого файла путем выбора файла в Data Browser и последующего выбора значения из панели File Labels.
Можно задать метки уровня области вручную или с помощью предоставленных автоматических алгоритмов. Audio Toolbox включает алгоритмы автоматической маркировки для обнаружения речи и транскрипции речи в текст.
Примечание
Чтобы включить автоматическую транскрипцию речи в текст, необходимо загрузить и настроить функциональность транскрипции речи в текст. После загрузки и настройки функциональности транскрипции речь-текст, алгоритм автоматизации Speech to Text появляется как опция на панели инструментов.
Выберите Counting-16-44p1-mono-15secs.wav
от Data Browser.
Чтобы создать метку уровня области, которая указывает, обнаружена ли речь, сначала выберите Speech Detector из раздела AUTOMATION. Вы можете управлять алгоритмом обнаружения речи, используя параметры Window Length (s) и Merge Regions Within (s). Используйте параметры по умолчанию для алгоритма обнаружения речи. Чтобы создать метку информации только для чтения и пометить области выбранных аудио файлов, выберите Run.
Закройте вкладку Speech Detector. Можно исправить или настроить автоматически сгенерированные SpeechDetected области путем выбора информация только для чтения на панели ROI, а затем перетаскивания ребер области. Информация только для чтения находится непосредственно справа от метки информация только для чтения. При выборе области щелчком мыши воспроизводится только выбранная область, что позволяет проверить, захватывает ли выбранная область всю соответствующую аудиоинформацию.
Если вы настроили сервис транскрипции речь-текст, выберите Speech to Text из раздела Automation. Вы можете управлять транскрипцией речь-текст с помощью опций пары "имя-значение", характерных для выбранной услуги. Этот пример использует IBM® и не задает дополнительные опции.
Метки информации только для чтения, возвращенные службой транскрипции, являются строками с начальной и конечной точками. Начальная и конечная точки не точно соответствуют начальной и конечной точкам исправленных вручную областей обнаружения речи. Можно исправить конечные точки метки SpeechContent информации только для чтения, выбрав область и перетащив ребра области. Служба транскрипции неправильно классифицировала слова «два» как «до», «четыре» как «для» и «десять» как «тогда». Можно исправить строку, выбрав область и затем введя новую строку.
Создайте еще одну метку уровня региона, нажав на панели ROI Labels. Установите Label Name значение VUV
, установите Data Type равным categorical
, и Categories к voiced
и unvoiced
.
По умолчанию средство просмотра формы волны отображает весь файл. Чтобы отобразить инструменты для масштабирования и панорамирования, наведите указатель мыши на правый верхний угол графика. Изменение масштаба первых пяти секунд аудио файла.
При выборе области на графике и наведении указателя мыши на любую из двух полос информация только для чтения появляется тень области. Чтобы назначить выбранную область voiced категорий, щелкните one на SpeechContent панели меток. Наведите на VUV метку, а затем щелкните тень и выберите voiced
.
Следующие два слова, «два» и «три», содержат как озвученную, так и негласную речь. Выберите каждую область речи на графике, наведите указатель мыши на панель метки VUV и выберите правильную категорию для этой области.
Определения меток можно экспортировать как файл MAT или как скрипт MATLAB. Поддержание определений меток позволяет обеспечить согласованную маркировку между пользователями и сеансами. Выберите Export > Label Definitions > To File.
Метки сохраняются как массив signalLabelDefinition
объекты. В следующем сеансе можно импортировать определения меток, выбрав Import > Label Definitions > From File.
Можно экспортировать маркированный набор сигналов в файл или в рабочую область. Выберите Export > Labels > To Workspace.
Эта 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
. Использование audio datastore позволяет вам применить возможности, которые являются общими для приложений машинного обучения, таких как splitEachLabel
. splitEachLabel
позволяет вам разделить данные на train и тестирования.
Создайте аудио datastore для вашего маркированного набора сигналов. Укажите местоположение аудио файлов в качестве первого аргумента 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