Учебник о том, как подойти к машинному обучению
Голос – это инструмент, который позволяет нам выражать как вербально, так и паравербально мысли, мнения и особенно настроения и эмоции. Это чрезвычайно гибкий сенсорный канал, способный предоставлять множественную информацию в коммуникативном потоке, выходящем за рамки простых слов. Более того, другие исследования подтверждают, что эмоции влияют на голос и, наоборот, вызывают эмоциональные изменения в общении.
Мой проект основан на распознавании эмоций, которые вызывает у собеседника во время разговора. Например, речь, произносимая в состоянии страха, гнева или радости, становится громкой и быстрой, в то время как такие эмоции, как печаль или усталость, вызывают медленную и тихую речь.
Для этого я использовал технологию Машинное обучение, ответвление Искусственного интеллекта (ИИ) и компьютерных наук, которое фокусируется на использовании данных и алгоритмов для имитации того, как люди учатся, постепенно совершенствуясь. его точность.
Модель, построенная с помощью CreateML
Я обучил свою модель машинного обучения с помощью CreateML framework. Приложение CreateML, включенное в Xcode, позволяет разработчикам создавать модели CoreML, распознающие звуки, без написания кода.
Набор данных был создан с использованием 4801 образца:
- 1001 речевой файл и 1000файл песни из набора данных Аудио-визуальная база данных эмоциональной речи и песни Райерсона (RAVDESS). Этот набор данных включает записи 24 профессиональных актеров (12 женщин, 12 мужчин), которые произносят два лексически совпадающих утверждения с нейтральным североамериканским акцентом. Речь включает выражения счастья, грусти, гнева, страха, удивления и отвращения, а песня содержит эмоции счастья, грусти, гнева и страха.
- 2800 файлов из набора данных Набор эмоциональной речи Торонто (TESS). Две актрисы (26 и 64 года) произносили набор из 200 целевых слов во фразе-носителе Произнеси слово _____ и записывали набор, изображающий каждую из семи эмоций (гнев, отвращение, страх, счастье, приятное удивление, печаль и нейтральность).
Модель была обучена классифицировать семь различных эмоций (нейтральные, счастливые, грустные, злые, испуганные, отвращение, удивленные); 80 % набора данных было использовано для этапа обучения, 20 % для тестирования.
Как видите, модель достигла наилучшего результата в классе удивление(86%) и худшего в классе счастливый(50%).
Как реализовать модель на SwiftUI
Чтобы использовать модель, вам нужно импортировать файл в Xcode, а затем импортировать SoundAnalisys, структуру, которая классифицирует различные звуки путем анализа аудиофайлов или потоков. В приведенном ниже коде создается основной класс SoundAnalyzerController.
В этом классе я определяю переменные, включая переменную @Published, которую я буду использовать для получения прогноза. В инициализаторе я определяю переменную inputFormat, а затем создаю экземпляр SNAudioStremAnalyzer из среды SoundAnalysis. Этот класс позволяет нам анализировать потоки аудиоданных; наконец, я вызываю функцию startAudioEngine().
В этой функции я создаю запрос, который через определенную модель ml (в данном случае нашу переменную soundClassifier типа EmotionModel()) анализирует аудиопоток; затем я передаю запрос (полученный благодаря переменной ResultsObserver, о которой мы поговорим позже) в анализатор.
В этот момент через протокол EmotionClassifierDelegate я вызываю функцию displayPredictionResult, определенную в расширении SoundAnalyzerController, эта функция позволяет нам изменять переменную Published transcriberText класса.
Наконец, я создаю класс ResultsObserver, который будет использоваться для создания экземпляра объекта resultsObserver основного класса и передаю запрос анализатору в приватной функции startAudioEngine().
Когда вы создаете экземпляр SoundAnalyzerController, его inputNode по умолчанию получает доступ к аудиоданным с микрофона устройства по умолчанию. Очень важно добавить описание ключа NSMicrophoneUsageDescription в файл Info.plist
вашего проекта. Создав такой экземпляр, можно, благодаря функции startAudioEngine(), слушать и анализировать окружающие звуки.
Это простая демонстрация того, как это работает.
Заключение
Моя главная цель — использовать эту модель в разрабатываемом приложении под названием ArtFeel. ArtFeel основан на теории цвета, согласно которой цвет может ассоциироваться с эмоциями человека и влиять на его психическое и физическое состояние.
Если вы хотите узнать больше об этом проекте, загляните в наш TestFlight и дайте нам ваш отзыв.
Затем я создал еще один проект, используя теорию цвета и добавив больше функциональности, все еще используя ту же модель машинного обучения.
Ссылки:
Проект: Гитхаб
Проект с теорией цвета: Github