Как следует тестировать искусственный интеллект? (5) Введение в тестирование эффекта ASR
Как следует тестировать искусственный интеллект? (5) Введение в тестирование эффекта ASR

Что такое АСР

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

сбор данных

Из предыдущего введения мы знаем, что при оценке эффекта модели самое важное — собрать тестовые данные, соответствующие сценарию. Системы ASR в целом можно разделить на специфическое и неспецифическое распознавание людей, а также на системы с малым, средним и большим словарным запасом. По способу ввода речи ее можно разделить на отдельные слова, связные слова и систему слитной речи. Кроме того, входную речь также можно классифицировать по режиму ее произношения (например, чтение вслух и разговорная речь), диалектному фону (например, мандаринский диалект, диалектно-мандаринский диалект и системы распознавания диалектной речи) и эмоциональному состоянию (например, нейтральная речь). и системы распознавания эмоциональной речи). Итак, на самом деле, вы можете видеть, что собрать столько категорий голосовых материалов очень хлопотно. Раньше у нас здесь был брат. Чтобы собрать достаточно данных, он специально подал заявку в фонд и разместил вознаграждение на платформе — учитывая конкретные тексты, он предлагал вознаграждение людям разного возраста, пола, диалектов и т. д. за их прочтение. тексты вслух и разместил их на платформе. Голосовой файл был отправлен брату в обмен на деньги. Поэтому стоимость качественных данных не низкая. Помните, два месяца назад у нас был проект, и проект подготовил бюджет в 20 Вт на покупку данных. Такие данные труднее использовать. В противном случае высококачественные данные представляют собой самый большой разрыв между отечественными и зарубежными моделями.

Процесс эффекта

  • сбор данных
  • Пометить аудиоданные
  • Введите звук в модуль алгоритма ASR, чтобы получить выходной результат (текст).
  • Вычисление показателей оценки модели

Построение набора оценочных данных

Как мы говорили выше, нам необходимо собирать различные типы данных, и эта часть работы очень тяжелая. У разных проектов разные требования. Например, вот пример данных, которые можно скачать из Интернета:

  • Новостные данные: охватывают 40 полных новостей и 44 основных полных новостных данных в 31 провинции и городе, для каждого типа программы выбирается одно видео, продолжительность каждого видео составляет примерно 30-60 минут.
  • Интегрированные медиа-данные: охватывают 35 приложений, публикуемых ежедневными газетами и телеканалами, в том числе приложения, которые скачали более миллиона раз, в том числе (People's Daily, Dazhong Daily, Beijing Daily, Hubei Daily, Guangzhou Daily, Hebei Daily, Workers' Daily, Henan Daily, Guangming Daily, China Youth Daily, Southern Metropolis Daily, информационное агентство Синьхуа, Southern Weekend, Xinmin, Yangcheng Pai, Lizhi News), эта категория приложений выбирает по 100 видеоматериалов каждое, а остальные выбираются с низким объемом загрузки 20 материалы (в основном на основе доли загрузок для определения доли выбранных тестовых данных)
  • Спорт, развлекательные шоу, кино- и телевизионные драмы и т. д. . . . Получить данные слишком сложно. К счастью, у нашей команды есть специальная группа данных.

Спецификации аннотаций данных

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

  • Транскрибируемый контент соответствует фактическому содержанию произношения, транскрибируемая Точность. слова для достижения 99%, однако при изменениях произношения, вызванных акцентом или личными привычками, исходное содержание все равно будет расшифровано. (Например, поставьте «Банк» произносится ying 2 Hang2, согласно "банк" Транскрипцию, кроме того, для полифонических слов или слов, которые в реальной жизни легко спутать, транслитерировать согласно исходному содержанию: например, офис; "комната", некоторые читают shi3 , некоторые люди читают shi4 , пожалуйста, укажите правильное слово "офис" Просто перепишите)
  • Полнота транскрибируемого содержания должна соответствовать реальному произношению и не должна удаляться (например, если произношение такое: Я из Пекина, Пекин; если слово "север" повторяется, то при его транскрипции оно; следует писать так: Я из Пекина, Пекин )
  • При расшифровке имени человека оно может быть представлено общеупотребительными словами. Особых требований к словам нет. Такие как: Ли Шань, Ли Шань, Ли Шань и т. д.;
  • При обнаружении чисел следуйте китайскому методу написания иероглифов «один, два, три» вместо формы арабских цифр «123» (если существует метод телеграфного чтения, например, унитарный, нулевой и т. д., расшифровывайте в соответствии с методом телеграфного чтения); ;)
  • Если вы сталкиваетесь с интернет-сленгом и на самом деле произносите «Хуйчан», «Детская бумага» и «Детская обувь», их также следует писать как «Хуйчан», «Хайчжи» и «Детская обувь» вместо «Очень», «Детская обувь». и «Одноклассники».
  • Произношение эрхуа: - Если в исходном аудио есть произношение эрхуа, транслитерация должна содержать «эр», например «На». Если произносится эрхуа, оно будет транскрибироваться как «На»; - В исходном звуке нет произношения «эр», поэтому в транскрипции не должно быть «эр» - По-прежнему берем «На» в качестве примера, если говорящий не произносит произношение «эр», то оно будет транскрибироваться как «На»;
  • Модальные частицы: модальные частицы, четко произносимые говорящим в аудиозаписи, например «аааааааа» и т. д., должны быть транскрибированы в соответствии с правильным произношением.
  • Английский: - В орфографическом формате (включая прописанные буквы, аббревиатуры и аббревиатуры) каждая написанная буква должна быть заглавной и с пробелами. Например: M A R Y вместо mary или MARY. - Товарные знаки, бренды, зарегистрированные названия и т. д. должны отображаться в исходном фирменном формате, например: Hotmail dot com вместо hot mail dot com. - Если некоторые слова неясны, попробуйте вместо них использовать омофоны, если это имеет смысл. Если действительно невозможно расшифровать, это предложение будет вырезано как недействительное. - Если несколько человек говорят перекрывающиеся части, если содержание основного докладчика можно записать, отметьте тег /multi до и после этой части. Если содержание основного докладчика не может быть расшифровано, все предложение будет вырезано как недопустимый тег.

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

Расчет метрик оценки модели

Частота ошибок в словах WER

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

Формула расчета: Частота ошибок в словах WER=Расстояние редактирования идентифицированного текста относительно аннотированного текста/общее количество слов аннотированного текста.

Пример кода:

Язык кода:python
кодКоличество запусков:0
копировать
import Levenshtein

text1 = «Кто я, я своего рода тестер ах»
text2 = «Кто я, я разработчик ах»
distance = Levenshtein.distance(text1, text2)
print(f"The Levenshtein distance between '{text1}' and '{text2}' is {distance}.")
wer = distance/len(text1)
print(f"The wer is {wer}.")

Точность слова

Точность слова=Распознать правильное количество слов/отметить общее количество слов в тексте

Частота вставки/удаления/замены

Скорость вставки = количество операций вставки/общее количество слов в аннотированном тексте.

Скорость удаления = количество операций удаления/общее количество слов аннотированного текста.

Коэффициент замены = количество операций замены/общее количество слов в аннотированном тексте.

Пример кода:

Язык кода:python
кодКоличество запусков:0
копировать
import Levenshtein

def calculate_error_rates(ref, hyp):
    # Вычислить расстояние Левенштейна и отредактировать операции
    editops = Levenshtein.editops(ref, hyp)

    # вычислитьскорость вставки、Скорость удаленияикоэффициент замещения
    insertions = 0
    deletions = 0
    substitutions = 0

    for op in editops:
        if op[0] == 'insert':
            insertions += 1
        elif op[0] == 'delete':
            deletions += 1
        elif op[0] == 'replace':
            substitutions += 1

    # Посчитать общее количество символов
    total_chars = len(ref) + len(hyp)

    # вычислитьскорость вставки、Скорость удаленияикоэффициент замещения
    insertion_rate = insertions / total_chars
    deletion_rate = deletions / total_chars
    substitution_rate = substitutions / total_chars

    return insertion_rate, deletion_rate, substitution_rate

# Пример
ref = «Я люблю есть яблоки»
hyp = «Я люблю есть апельсины, ах»

insertion_rate, deletion_rate, substitution_rate = calculate_error_rates(ref, hyp)

print(f"Insertion rate: {insertion_rate:.2%}")
print(f"Deletion rate: {deletion_rate:.2%}")
print(f"Substitution rate: {substitution_rate:.2%}")

Подвести итог

Видно, что с помощью библиотеки Левенштейна мы можем легко автоматизировать оценку эффектов. Конечно, предполагается, что данные и аннотации готовы~. Итак, повторюсь, люди, работающие в области искусственного интеллекта, тратят большую часть своего времени на данные.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose