Как прикольно поздороваться в вк: TikTok — Make Your Day
пять приемов с примерами — Офтоп на vc.ru
Тренеры бюро подготовки публичных выступлений «Глагол» делятся инструментами, как сделать вступление и быстро собрать внимание аудитории.
133 045 просмотров
Что не так с «Здравствуйте, меня зовут…»
Большинство спикеров не любят вступления. Часто в начале выступающий чувствует себя неловко и не знает, как подвести к теме. Появляется фраза по умолчанию: «Добрый день, меня зовут… последние 15 лет я занимаюсь … и сегодня я расскажу, как …».
Для слушателя вступление — это обещание, что дальше будет что-то интересное. Поэтому задача первых минут речи — заинтересовать и вызвать доверие. Заход «Здравствуйте, меня зовут…» повторяется обычно от спикера к спикеру и от этого не помогает захватить внимание.
Вот еще некоторые штампы для вступлений:
- Как вам меня слышно?
- Давайте узнаем, кто сегодня в зале. Поднимите руку те, кто…
- Я редко выступаю, поэтому волнуюсь.
- Обычно то, что я буду рассказывать вам сейчас, я говорю на трехдневном тренинге. Сегодня у нас только 30 минут, поэтому не будем терять времени.
Все эти приемы нейтральны сами по себе, но из-за частых повторов превратились в информационный шум. Аудитория пропускает их мимо ушей, а вы теряете важные минуты первого впечатления.
Теперь представьте, что после нескольких одинаковых вступлений спикер неожиданно начинает речь с личной истории или кейса, который слушателям будет интересно рассказать своим приятелями. Придумать такие ходы непросто, поэтому тренеры бюро «Глагол» сделали подборку инструментов для вступлений.
Начните с утверждения
Прием, когда речь начинается с главной мысли выступления, редко встречается в России. Попробуйте вместо приветствия сразу начать с сути — емкого утверждения, которое вы дальше раскроете.
Например, Михаил Казиник начал свое выступление на TED c фразы «Послушайте, школа умерла. И если новая школа не возродится, то можете готовиться к третьей мировой войне». Параллельно тут работают два приема: спикер погружает слушателей в контекст и отстраивается от других выступающих.
Выступление Михаила Казиника на TEDxSadovoeRing
Расскажите историю, в которой слушатели узнают себя
Брайан Стивенсон привлек 1,3 млн долларов за одну речь на TED. То же выступление стало рекордсменом по длительности аплодисментов. Тема Стивенсона сложная — недостатки судебной американской системы и дискриминация.
Особенность этого выступления в том, что четверть выступления спикер потратил на установление контакта с аудиторией. Первые пять минут Брайан рассказывал личную историю про свою бабушку, которая видела в каждом внуке индивидуальность. История вызвала интерес и доверие — только после этого спикер начал говорить о несправедливости суда в США.
Выступление Брайана Стивенсона на TED2012
История необязательно должна быть личной. Начните с кейса, рабочей ситуации. Так Марк Робер в начале выступления рассказывает о результатах A/B теста, когда он попросил своих подписчиков сыграть в простую игру и запрограммировать движение машинки. По факту игры было две: в одной ты после неудачной попытки просто пробуешь снова, а в другой — в случае проигрыша снижались баллы.
Обратите внимание: Робер не стал показывать экспертность и рассказывать про А/В тест, который он раскатал на репрезентативной выборке. Спикер адаптировал контент под аудиторию неспециалистов.
Выступление Марка Робера на TEDxPenn
Сломайте шаблон
Суть приема в том, чтобы разбить рамку, которую задали предыдущие спикеры. Если это деловая конференция и все обычно начинают с официальных приветствий, расскажите что-то личное. Если все начинают с рассказа, покажите видео. Рисуйте на доске, если до этого спикеры иллюстрировали речь слайдами. Спуститесь в зал, поменяйте локацию на сцене, говорите без микрофона. Отстройка может быть и по содержанию, и по подаче.
Вот пример разрыва шаблона с российской конференции Epic Growth Summit. Антон Бондарев, основатель «Кухни на районе» в начале выступления говорит: «Сегодня вы будете слушать истории о том, как растут компании, какой опыт вы можете вынести для своего бизнеса. Но я хотел бы подойти с другой стороны. И расскажу про вас, про конкретно каждого из вас». Такое вступление отличает Антона от других спикеров, а еще включает личный интерес: что это такое будут говорить обо мне?
Выступление Антона Бондарева на Epic Growth Summit
Еще один пример: юрист Дмитрий Гриц на форуме «Будь больше, чем юрист» выступал с темой «Новые тренды отбора молодых сотрудников. Как увидеть “звезду”?» Он начал свое выступление сразу с ответа на поставленный вопрос. Во весь слайд было написано слово «Никак». И дальше черный экран, конец презентации.
Выступление Дмитрия Грица на 4Legalforum
Начните с цитаты
Обычно когда речь об идет о цитате, вспоминаются школьные травмы. Но источником цитирования может быть не только Аристотель или Сократ. Возьмите высказывание Дудя, Варламова, Лебедева. Процитируйте известного в вашей сфере специалиста или участника вашей команды, если это локальная встреча.
По-честному, этот прием встречается настолько редко, что даже хорошего примера мы не нашли. Поэтому рекомендуем брать в работу как можно скорее. А если попалось видео, где спикер все-таки начинает с цитаты, поделитесь в комментариях.
Дайте слушателям задание
Формат задания тоже может показаться буллшитным — сразу представляется, что вы просите слушателей встать и начать обмениваться визитками или объятиями. На деле задание бывает мягким и не требующим активного действия от слушателей. Например, показать картинку и попросить предположить, что это. Или предложить выбор между двумя вариантами.
Чемпион по запоминанию Джошуа Фор начал свое выступление с простого задания: закрыть глаза и представлять все то, что он говорит. Фор предлагал неожиданные и абсурдные картинки: например, танцующую на вашем журнальном столике Бритни Спирс.
Выступления Джошуа Фора на TED2012
И еще несколько простых фишек для установления контакта
Сделайте ссылку на предыдущего спикера
Ссылка на другие выступления — простой вариант вступления, который не требует подготовки. В начале выступления вы как будто бы подхватываете тему, о которой рассказывал кто-то до вас. Для аудитории это маркер того, что вы слушаете выступления своих коллег и уверенно себя чувствуете, а не пришли с текстом на листочке.
Обратитесь к общему опыту слушателей
Попросите аудиторию вспомнить то, что знают все люди в зале. Это может быть недавнее событие в компании или отрасли, новый затронувший всех законопроект, опыт, объединяющий людей определенного возраста, значимый факт в прошлом. Начните с фразы «Помните, как…» или «Вы уже знаете, что…»
Попросите аудиторию пересесть ближе
Если это офлайн-мероприятие, то обычно аудитория рассаживается в зале как хочет. Вы можете попросить пересесть на первые ряды в самом начале. Хорошо, если у слушателей от этого появится дополнительный профит, чтобы это было не как на лекции в университете «Пересядьте ближе», а с какой-то пользой. Например, так они смогут увидеть презентационные материалы, которые вы будете передавать по рядам.
Придумайте, чем занять паузу в начале
Если вы выступаете онлайн, не рассчитывайте, что все присоединятся вовремя
Зрители будут подтягиваться минут пять. Но те, кто пришел вовремя, не должны тратить это время зря. Продумайте заранее, чем вы займете паузу. Можно включить видео, показать заготовленные ролики по теме или рекламу вашей компании. Или рассказать историю на отвлеченную тему.
После хорошего вступления слушатели откладывают свои дела и включаются в происходящее. Они настроились и готовы узнать новое. А главное — у них появляется мысль: «Похоже, это выступление будет интересным».
Пробуйте и комбинируйте приемы. Следующий уровень прокачки ваших вступлений начинается, когда вы ставите перед собой задачу — установить с аудиторией контакт в первые 60 секунд. Маркер контакта — это реакция аудитории. Смех, аплодисменты, что угодно. Если не получилось вызвать реакцию в начале, то дальше установить контакт будет все сложнее.
Расскажите в комментариях, какие ваши любимые вступления — примеров в подборке станет еще больше. А мы в следующий раз поделимся, как структурировать основную часть, когда вы готовитесь к конференции и рассказываете кейс из своей работы.
Весёлая латынь. Homo hominis
Я люблю латынь.
Это язык учёных, это база.
Это просто красиво.
И увлекательно — можно найти много соответствий в современной речи.
Латынь развивает соображалку.
Да и просто прикольно.
Вот доводы, чтобы чуть-чуть вникнуть в латынь.
Называют латынь мёртвым языком… «Вы посмотрите. как эти мертвецы стреляют», — говорил Жорж Милославский в «Иване Васильевиче», фильме Гайдая по пьесе Михаила Булгакова.
Булгаков — врач. Он латынь знал хорошо. У врачей это раньше был язык конспирологии — при больном доктора говорили по-латыни. Больной не мог понять диагноза, поэтому спал, как правило, спокойно. К тому же проникался уважением к мудрым докторам.
Сейчас — какая конспирология? «Канцер», «фибрилляция» — они в эпоху интернета и СМИ и так понятны: рак, трепетание. Больной сам готов врача чему-нибудь научить.
Роль тайного, профессионального языка латынь почти утратила.
Но не утратила своей красоты.
И не утратила все же роль маркера: она отмечает людей, почитающих ее, особой печатью.
Представьте, что один из учёных в речи использует латинские пословицы. А другой — не использует. Кто покажется с ходу более умным? Латынь знает своё дело.
А если тот, кто назвался учёным ( шпион, например — ну, допустим) — не понял простейшего выражения, принятого в научной среде — ab ovo, допустим. То вот и сыграет латынь роль маркера, указав на чужака.
Но главная причина знать латынь, по-моему, вот такая. Мы постоянно встречаем деревья, цветы, животных — и даже не знаем их латинских имен, их научных паспортов. Нет бы поздороваться с березой: Здравствуй, Бетула Верикоза! Или с одуванчиком: Привет, Тарахациум Оффицинале! А если встретишь волка и скажешь: Люпус сильвестрис, да мы же свои люди! — может, он и не тронет.
Но это шутки.
Хотите чуть-чуть веселой латыни?
Homo sapiens — это мы, люди. Человек разумный.
От слова «Хомо», «Гомо» — человек — слова «гуманизм», «гуманный», «гуманоид» тоже оттуда. Вот «гомогенный» — однородный, рождающий однообразие — это уже не то ли обидно ( мы все же разные) — то ли обещающе, требование языка о единстве, равенстве. братстве.
А вот и первая пословица:
Homo hominis lupus est
Человек человеку — есть волк.
est — это «есть», ес ит из.
Не отсюда ли наше «есть» — и существовать, и кушать?
Это слово-утверждение. В латыни. Оно короткое, как всякое верное утверждение. А что долго говорить — есть, и все тут.
На языке военных «есть» — это «да».
То же самое, утверждение.
Волк как вид по латыни — Canis lupus, Собака волчья.
Если прочесть книгу канадского журналиста Фарли Моуэта «Не кричи: «Волки» — Фарли несколько лет изучал волков в дикой природе, в канадских снегах — и вынес убеждение, что у волков идеальные социальные отношения: никогда не оставят своего в беде, волки-«дядьки» курируют и учат «племянников», волчицы — лучшие матери и супруги… Волки никого не обидят напрасно…
Если прочесть эту книгу, то, может, сентенция «человек человеку — волк» воспринималась бы с мечтательным вздохом: «О, если бы…»
Может быть интересно:
- Биография Обручева Сергея Владимировича
- Как вырастить фасоль в домашних условиях
- История создания логарифмической линейки
- Как используется опавшая листва для удобрения почвы
- Сапонины в растениях: удивительное природное мыло
Мощное трио: Kampfpanzer 07 RH, FCM 50 t и VK 75.01 (K) | Скидки
KAMPFPANZER 07 RH ПРЕДЛОЖЕНИЯ | BRUNNENPANZER 3D STYLE ПРЕДЛАГАЕТ | FCM 50 T ПРЕДЛАГАЕТ | ВК 75. 01 (К) ПРЕДЛОЖЕНИЯ
Командиры!
Поздоровайтесь с грозным трио танков, которое изменит ваш боевой опыт. Благодаря отличной подвижности
VIII
Кампфпанцер 07 РХ
к проворным охотничьим возможностям
VIII
ФКМ 50 т
и внушающее страх присутствие
VIII
ВК 75. 01 (К)
, приготовьтесь одержать победу с этими неудержимыми боевыми машинами.
Kampfpanzer 07 RH,
Немецкий средний танк VIII уровня
- Урон в минуту: 2400 л.с.
- Бронепробиваемость: 205/255/90 мм
- Максимальная скорость: 65 км/ч
СКИДКИ ДО 28%
FCM 50 t,
Французский тяжёлый танк VIII уровня
- Максимальная скорость: 51 км/ч
- Урон в минуту: 2117 HP
- Очки здоровья: 1500
СКИДКИ ДО 25%
ВК 75.01 (К),
Немецкий тяжелый танк VIII уровня
- Бронепробиваемость: 226/263/65 мм
- Урон: 490/490/630 л.с.
- Очки здоровья: 1600
СКИДКИ ДО 28%
Kampfpanzer 07 RH Предложения
Доступен с 16 июня 07:00 CEST до 26 июня 07:00 CEST (UTC+2)
Этот универсальный и манёвренный средний танк отлично подходит для различных боевых задач. Он обладает впечатляющей скоростью, способной соперничать с легкими танками, и может быстро захватывать стратегические позиции. Обладая скорострельностью 12 выстрелов в минуту, боезапасом 80 выстрелов и уроном в минуту 2400, он способен подавить легкие танки противника. Более того, он предлагает хороший обзор и превосходен в качестве корректировщика и разведчика с возможностями скрытности. Несмотря на уязвимость своей брони,
VIII
Кампфпанцер 07 РХ
малое время прицеливания и высокая мобильность с лихвой компенсируют любую слабость.
Комплект поставки:
VIII Кампфпанцер 07 РХ
100% обученный экипаж
Слот Ангара
Brunnenpanzer 3D Style
Золото
World of Tanks Premium Аккаунт
×5 миссий опыта
Личный резерв: +3 00% к свободному опыту и опыту экипажа на 1 час
Внутриигровая цена
SUPREME
DELUXE
STANDARD
14 850
5 700
9 000230 дней
25 000
19 500
10 000
9,5 00
Покупка
Покупка
Покупка
Применяемая скидка может незначительно отличаться в зависимости от выбранной вами валюты.
1/10
Brunnenpanzer 3D Style Предложения
Доступно с 16 июня 07:00 CEST до 26 июня 07:00 CEST (UTC+2)
Получил VIII Кампфпанцер 07 РХ в вашем гараже? Тогда не упустите возможность улучшить его внешний вид и выделить свой танк на поле боя. Воспользуйтесь силой настройки и раскройте свой творческий потенциал с помощью 3D-стиля Brunnenpanzer.
Комплектация:
Brunnenpanzer 3D Style
Премиум-аккаунт WoT
Внутриигровая цена
ЛУЧШАЯ ПОКУПКА 9000 9
3D STYLE
30 дней
Покупка
Покупка
Применяемая скидка может незначительно отличаться в зависимости от выбранной валюты.
1/10
FCM 50 t Предложения
Доступно с 16 июня 07:00 CEST до 26 июня 07:00 CEST (UTC+2)
VIII
ФКМ 50 т
бросает вызов всем ожиданиям от тяжелого танка. Его высокая мобильность в сочетании с более чем 2100 DPM делают его универсальным бойцом в любом сценарии. Этот французский истребитель отличается от своих собратьев, предлагая уникальный и нестандартный опыт, который очарует тех, кто ценит экстраординарность. С выдающимся диапазоном обзора и смертоносным 90 мм, это далеко не ваш типичный громоздкий тяжелый танк.
Комплектация:
VIII ФКМ 50 т
100% обученный экипаж
Гараж -слот
Gold
Кредиты
× 5 XP Миссии
Личные резервы
+300%.0009
+100% к боевому опыту на 1 час
+50% к кредитам на 1 час
Расходники
Большой ремкомплект
Автоматический огнетушитель
Большая аптечка
9 0002 Внутриигровая цена
SUPREME
DELUXE
STANDARD
15 000
6 000
1 000 000
60 всего
30 всего
75 всего
25 000
19 500
10 000
9 500
Покупка
Покупка
Покупка
Применяемая скидка может незначительно отличаться в зависимости от выбранной валюты.
1/10
VK 75.01 (K) Предложения
Доступно с 16 июня 07:00 CEST до 26 июня 07:00 CEST (UTC+2)
VIII
ВК 75.01 (К)
это грозный танк, который вселяет страх в своих противников. Обладая лобовой броней башни в 250 мм, прочной бортовой броней и значительным уроном в 1651 ед./мин, этот танк ничего не боится в бою. Он оснащен задней пушкой, которая может пробить до 226 мм брони, что укрепляет его позиции как одного из самых доминирующих танков на своем уровне. Если вам нравится агрессивный и дерзкий стиль игры, эта мощная машина готова помочь вам сеять разрушения на поле боя.
Комплект поставки:
VIII ВК 75.01 (К)
100% обученный экипаж
Слот Ангара
Золото
×5 миссий опыта
Личные резервы
+300% к свободному опыту и опыту экипажа на 1 час
+100 % к боевому опыту на 1 час
+50% к кредитам на 1 час
Внутриигровая цена
SUPREME
DELUXE
STANDARD
15,000 90 009
5 000
Всего 60
Всего 30
25 000
19 500
10 000
9 500
Покупка
Покупка
Покупка
9007 3 Применяемая скидка может незначительно отличаться в зависимости от выбранной валюты.
1 / 10
Не упустите свой шанс изучить распродажи трехмерных танков, доступных для Tiger I и Panther, чтобы доминировать на поле боя!
Развернуть!
Читать вместо того, чтобы слушать: как работает распознавание речи во ВКонтакте | by VK Team
12 минут чтения·
10 февраля 2022 г.Когда дело доходит до сообщений, читать их быстрее, чем слушать. Также легче просматривать текст, чтобы найти и проверить детали. Однако иногда бывают ситуации, когда гораздо удобнее просто отправить голосовое сообщение, чем набирать все подряд.
Меня зовут Надя Зуева. В этой статье я расскажу, как мы в ВКонтакте смогли помочь помирить любителей и ненавистников голосовых сообщений с помощью автоматического распознавания речи. Я поделюсь с вами тем, как мы пришли к нашему решению, какие модели мы используем, на каких данных мы их обучали и как мы оптимизировали его для быстрой работы в продакшене.
Мы начали исследования по распознаванию речи в голосовых сообщениях в 2018 году. Тогда мы думали, что это может стать крутой функцией продукта и настоящим вызовом для нашей исследовательской группы. Голосовые сообщения записываются в условиях, далеких от идеальных, люди говорят на сленге и не особо заботятся о правильной дикции. И в то же время распознавание речи должно быть быстрым. Тратить 10 минут на расшифровку 10-секундного голосового сообщения — не вариант.
В начале все наши эксперименты мы проводили с английской речью, так как на английском много хороших наборов данных, и научились их распознавать. Однако большая часть аудитории ВКонтакте говорит по-русски, и в открытом доступе не было русских наборов данных, которые мы могли бы использовать для обучения наших моделей. Сейчас с русскими наборами данных ситуация получше: есть «Голос» от Сбера, Common Voice от Mozilla и ряд других. Но до этого это была отдельная задача, которую нам нужно было решить, создав собственный набор данных.
Первая версия нашей модели была основана на wav2letter++ от Facebook AI Research и была готова к экспериментам в продакшене в 2019 году. Мы запустили ее в беззвучном режиме как функцию поиска голосовых сообщений. Благодаря этому мы смогли убедиться, что распознавание речи может быть полезно для преобразования голосовых сообщений в текст, и начали вкладывать больше ресурсов в создание этой технологии.
В начале 2020 года нашей задачей было нечто большее, чем просто создание точной модели. Нам нужно было увеличить производительность для нашей многомиллионной аудитории. Дополнительным вызовом для нас стал сленг. У нас не было другого выбора, кроме как выяснить, как его разобрать.
Теперь конвейер распознавания речи состоит из трех моделей. Первая — акустическая модель, отвечающая за распознавание звуков. Вторая — это языковая модель, которая формирует слова из звуков. И третья — это модель Punctuation, которая добавляет в текст знаки препинания. Мы рассмотрим каждую из этих моделей, но сначала давайте подготовим входные данные.
Для задач ASR первое, что вам нужно сделать, это преобразовать звук в формат, с которым может работать нейросеть. Сам по себе звук сохраняется в памяти компьютера в виде массива значений, показывающих колебания амплитуды во времени. Обычно частота дискретизации исчисляется десятками тысяч точек в секунду (или кГц), а получившийся трек получается очень длинным и сложным для работы. Поэтому перед прогоном через нейросеть звуки предварительно обрабатываются. Они преобразуются в спектрограмму, которая показывает интенсивность звуковых колебаний на различных частотах с течением времени.
Подход с использованием спектрограммы считается консервативным. Есть и другие варианты, такие как wav2vec (который похож на word2vec в НЛП, но для звука). Несмотря на то, что современные модели ASR в настоящее время используют wav2vec, этот подход не обеспечил улучшения качества для нашей архитектуры.
После преобразования необработанного сигнала в удобный формат для использования с нейронными сетями мы готовы распознавать речь, получая вероятностное распределение фонем во времени по звуку.
Большинство подходов сначала создают фонетические транскрипции (по сути, «что слышно, то и написано»), а затем отдельная языковая модель «прочесывает» результат, исправляя грамматические и орфографические ошибки и удаляя лишние буквы.
Марковские модели использовались в качестве простых акустических моделей для распознавания речи (например, в элайнерах). Теперь нейронные сети заменили эти модели для полного распознавания речи, но марковские модели по-прежнему используются, например, для разбиения длинных аудиосигналов на более мелкие фрагменты.
В 2019 году, когда мы активно работали над этим проектом, уже существовало значительное количество архитектур распознавания речи, таких как DeepSpeech3 (SOTA 2018 на основе набора данных LibriSpeech). Он состоит из комбинации двух типов слоев — рекуррентного и сверточного. Повторяющиеся слои позволяют генерировать продолжения фраз с особым вниманием к ранее сгенерированным словам. А сверточные слои отвечают за извлечение признаков из спектрограмм. В статье об этой архитектуре авторы использовали для обучения CTC-loss. Это позволяет модели распознавать такие слова, как «Privye-e-e-et» и «Privyet» (по-английски «Hello-o-o-o» и «Hello») как одно и то же, не спотыкаясь о длину звука. Собственно, эта функция потерь используется и при распознавании рукописных текстов.
Чуть позже был выпущен wav2letter++ от FAIR. Что делало его уникальным, так это то, что он использовал только сверточные слои без авторегрессии (при авторегрессии мы смотрим на ранее сгенерированные слова и последовательно просматриваем их, что замедляет работу нейронной сети). Создатели wav2letter++ сосредоточились на скорости, поэтому он был создан с использованием C++. Мы начали с этой архитектуры при разработке нашего поиска голосовых сообщений.
Использование полностью сверточных подходов открыло новые возможности для исследователей. Вскоре после этого появилась архитектура Jasper, которая также была полностью сверточной, но использовала идею остаточных соединений, как ResNet или трансформаторы. Затем появился QuartzNet от NVIDIA, основанный на Jasper. Это тот, который мы использовали.
Сейчас есть Conformer, который на момент написания статьи является SOTA-решением.
Таким образом, независимо от того, какую архитектуру мы выбрали, нейронная сеть получает на вход спектрограмму и выводит матрицу распределения вероятностей каждой фонемы во времени. Эта таблица также называется эмиссионным набором.
Используя жадный декодер, мы уже могли получить ответ из данных эмиссионного множества, выбрав наиболее вероятный звук для каждого момента времени.
Но этот подход мало что знает о правильном написании и, скорее всего, даст ответы с большим количеством ошибок. Чтобы исправить это, мы используем декодирование поиска луча с использованием взвешивания гипотез с использованием языковой модели.
После того, как мы получили набор эмиссий, нам нужно сгенерировать текст. Декодирование выполняется не только с использованием вероятностей, которые дает нам наша акустическая модель. Он также принимает во внимание «мнение» языковой модели. Это может сообщить нам, насколько вероятно встретить такое сочетание символов или слов в языке.
Для расшифровки используем алгоритм поиска луча. Идея заключается в том, что мы не только выбираем наиболее вероятный звук для данного момента, но и вычисляем вероятность всей цепочки с учетом предыдущих слов и сохраняем лучших кандидатов на каждом шаге. В результате выбираем наиболее вероятный вариант.
d2l.ai/chapter_recurrent-modern/beam-search.htmlПри отборе кандидатов мы присваиваем каждому вероятность, принимая во внимание ответы акустической и языковой моделей. Вы можете увидеть формулу на картинке ниже.
Хорошо, мы рассмотрели расшифровку поиска луча. Теперь нам нужно посмотреть, на что способна языковая модель.
В качестве языковой модели мы использовали n-граммы. С точки зрения архитектуры этот подход работает достаточно хорошо, пока мы говорим о серверных (а не мобильных) решениях. Ниже вы можете увидеть пример для n=2.
Что здесь гораздо интереснее, так это то, как мы предварительно обрабатываем данные для обучения.
При письме туда и обратно люди часто используют сокращения, цифры и другие символы. Наша акустическая модель знает только буквы, поэтому в наших обучающих данных нам нужно различать ситуации, когда «1» означает «первый», а когда означает «один» или «один». Трудно найти много текстов с непринужденной речью, где люди пишут «отдайте мне 386 рублей до 20 декабря» вместо «отдайте 386 рублей до 20 декабря». Поэтому мы обучили дополнительную модель нормализации.
Для его архитектуры мы выбрали трансформатор, модель, которая часто используется для машинного перевода. Наша задача по-своему похожа на МТ. Нам нужно перевести денормализованный язык в нормализованный язык, в котором используются только символы алфавита.
Модель языка дает нам последовательность слов, которые есть в языке и «идут вместе» друг с другом. Его намного легче читать и понимать, чем вывод акустической модели. Но для длинных сообщений результат все равно не очень хорош, потому что может быть некоторая двусмысленность.
После того, как мы получим читаемую строку слов, мы можем добавить знаки препинания. Это особенно полезно, когда текст длинный. Предложения, разделенные точками, читать намного легче, а в русском языке активно используются другие виды пунктуации, например, запятые. Даже в коротких предложениях они должны быть.
Архитектура, на которой основана наша модель пунктуации, представляет собой кодировщик из преобразователя и линейный слой. Он выполняет умную классификацию, предсказывая, нужна ли точка, запятая, тире или двоеточие после каждого слова или нет.
Подход к созданию обучающих данных здесь аналогичен. Мы берем тексты со знаками препинания в них и искусственно «портим» эти данные, убирая знаки препинания. Затем обучаем модель, чтобы вставить их обратно.
Как я упоминал в начале статьи, когда мы начинали наше исследование, в открытых источниках русскоязычных данных для обучения систем распознавания речи не было. Какое-то время мы экспериментировали с английским языком. Затем мы пришли к пониманию, что в любом случае нам нужны записи как можно более непринужденной речи, а не профессионально прочитанные аудиокниги, как в LibriSpeech.
В конце концов, мы решили сами собрать данные для обучения. Для этого мы привлекли Тестеров ВКонтакте. Мы готовили короткие тексты из 3–30 слов, которые нам диктовали в голосовых сообщениях. Тексты, которые должны были быть записаны, мы создавали сами на отдельной модели, которую обучали на комментариях публичных сообществ. Таким образом, мы получили дистрибутив из того же домена, где распространены сленг и случайная речь. Мы попросили тестировщиков записывать голосовые сообщения в различных условиях и говорить как обычно, чтобы наши обучающие данные максимально походили на то, что будет использоваться в реальных жизненных ситуациях.
Как всем известно, путь от описанных в статьях моделей (и даже их реализации специалистами по машинному обучению) до реального использования машинного обучения в продакшене — долгий путь. Поэтому наша инфраструктурная команда ВКонтакте начала работу над сервисом распознавания голосовых сообщений в самом начале 2020 года, когда у нас еще была первая версия модели.
Команда специалистов по инфраструктуре помогла превратить наши решения машинного обучения в высоконагруженный, надежный сервис с высокой производительностью и эффективным использованием серверных ресурсов.
Одна из проблем заключалась в том, что мы в исследовательской группе работаем с файлами моделей и кодом C++, который их запускает. Но инфраструктура ВКонтакте в основном написана на Go, и нашим коллегам нужно было найти способ заставить C++ работать с Go. Для этого мы использовали расширение CGO, чтобы код более высокого уровня можно было писать на Go, а декодирование и общение с моделями оставалось на C++.
Наша следующая задача заключалась в том, чтобы обрабатывать голосовые сообщения в течение нескольких секунд, но заставить эту обработку работать с ограничениями нашего оборудования и эффективно использовать ресурсы сервера. Чтобы это стало возможным, мы сделали так, чтобы распознавание голоса работало на тех же серверах, что и другие сервисы. Это вызвало проблему с общим доступом к ядрам GPU и CUDA из нескольких процессов. Мы решили эту проблему с помощью технологии MPS от NVIDIA. MPS сводит к минимуму влияние блоков и простоев, позволяя нам использовать видеокарту на полную катушку без необходимости переписывать клиент.
Другим важным моментом, который следует учитывать, является группировка данных в пакеты для эффективной обработки на графическом процессоре. Дело в том, что в пакете акустической модели все аудиофайлы должны быть одинаковой длины. Поэтому нам нужно было уравнять их, добавив нули к более коротким дорожкам. Однако они также проходят через акустическую модель и занимают ресурсы GPU. В результате выравнивания на разбор коротких сообщений уходило больше времени и ресурсов.
Полностью избавиться от лишних нулей невозможно из-за вариативности длины записи, но их количество можно уменьшить. Для этого инфраструктурная команда придумала способ разбивать длинные голосовые сообщения на 23-25-секундные фрагменты, сортировать все треки и группировать похожие по длине в небольшие пакеты, которые уже находятся в пути для отправки через сеть. видеокарта. Это разделение голосовых сообщений было сделано с помощью алгоритма VAD от WebRTC. Он помогает распознавать паузы и отправляет в акустическую модель полные слова, а не их фрагменты. Продолжительность 23–25 секунд была выбрана в результате экспериментов. Более короткие фрагменты вызывали снижение показателей качества распознавания, а более длинные требовалось чаще выравнивать .
Подход с разбиением длинных записей, помимо оптимизации производительности, позволил нам транскрибировать аудио практически любой длины в текст и открыл поле для экспериментов с ASR для других задач продукта, таких как автоматические субтитры.
В июне 2020 года мы запустили в производство распознавание голосовых сообщений для сообщений длиной до 30 секунд (в эту продолжительность укладывается около 90% всех таких сообщений). Затем мы оптимизировали сервис, интегрировав более интеллектуальный способ нарезки треков. С ноября 2020 года мы можем распознавать голосовые сообщения продолжительностью до двух минут (9 минут).9% всех голосовых сообщений). Наша инфраструктура готова к будущим проектам и позволит нам обрабатывать аудиофайлы продолжительностью в несколько часов.
Конечно, с момента его запуска год назад многое изменилось. Мы обновили архитектуру акустической и языковой модели и добавили шумоподавление.
На данный момент весь пайплайн выглядит так:
- Получаем звуковую дорожку, предварительно ее обрабатываем и превращаем в спектрограмму.
- Если трек длиннее 25 секунд, мы разрезаем его с помощью VAD на фрагменты по 23–25 секунд. Этот вариант помогает нам не сокращать слова пополам.
- Далее все фрагменты прогоняются через акустическую (на основе QuartzNet) и языковую (с использованием n-грамм) модели.
- Затем все фрагменты собираются вместе и проходят через модель пунктуации с помощью нашей пользовательской архитектуры.
Перед этим этапом мы также разбиваем слишком длинные тексты на сегменты по 400 слов.
- Мы объединяем все сегменты и даем пользователю расшифровку текста, которую он может быстро прочитать в любое время и в любом месте, экономя свое время.
Все это вместе образует уникальную услугу. Он может не только распознавать обыденную речь, сленг, ругательства и новые слова в шумной обстановке, но делает это быстро и эффективно. Вот процентили полного времени обработки голосового сообщения (без учета загрузки и отправки клиенту):
- 95-й процентиль: 1,5 секунды
- 99-й процентиль: 1,9 секунды
- 99,9-й процентиль: 2,5 секунды
количество количество голосовых сообщений, отправляемых во «ВКонтакте», выросло на 24% по сравнению с прошлым годом. Ежемесячно 33 миллиона человек слушают и отправляют голосовые сообщения. Для нас это означает, что нашим пользователям нужны голосовые технологии и стоит инвестировать в разработку новых решений.