Учебник о том, как подойти к машинному обучению

Голос – это инструмент, который позволяет нам выражать как вербально, так и паравербально мысли, мнения и особенно настроения и эмоции. Это чрезвычайно гибкий сенсорный канал, способный предоставлять множественную информацию в коммуникативном потоке, выходящем за рамки простых слов. Более того, другие исследования подтверждают, что эмоции влияют на голос и, наоборот, вызывают эмоциональные изменения в общении.

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

Для этого я использовал технологию Машинное обучение, ответвление Искусственного интеллекта (ИИ) и компьютерных наук, которое фокусируется на использовании данных и алгоритмов для имитации того, как люди учатся, постепенно совершенствуясь. его точность.

Модель, построенная с помощью 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