Как следует тестировать искусственный интеллект? (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
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода