pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Почему overflow: hidden; не скрывает текст рядом с блоком float?

Лучший ответ: Существуют понятия поток элементов в документе и контекст форматирования. Строчные располагаются в потоке слева направо, блочные — сверху вниз. Float заставляет другие элементы в потоке обтекать указанный. Именно это вы наблюдаете в первом примере.
Определенные свойства создают новый контекст (overflow, display с некоторыми значениями и другие). В новом контексте создается свой поток элементов. Вы это видите на втором примере.

Худший ответ: Сработает если задать нижний отступ:.float-left {
  margin-bottom: 70px /* = 100px - 30px (высота родительского блока - высота блока .float-left) */
}
Вопрос: Ошибка, на одном хосте php 5.6 работает, на другом нет, как исправить?

Лучший ответ: Это не ошибка это нотайс. Скорее всего на одном хосте был выключен вывод ошибок а на этом включен и поэтому не фурычит. выруби ошибки вручную php_flag display_errors Off (error_reporting(0);) или определи переменную

Худший ответ: Определить переменную client_email
Вопрос: Что мне будет за нарушение авторских прав?

Лучший ответ: Если вам для себя без публикации, то делайте как хотите
Если захотите опубликоваться где-то, то вас просто не пустят на приличные платформы

Худший ответ: если сторы вам не нужны (как тут писали уже). 
судится если и будут - то когда на кону что-то будет. если вы продадите 20 копий игры то вы никому не интересны, тк брать с вас нечего, да и не найдут, есть дела поинтереснее. а если увидят что игра становится популярная и вы зарабатываете, то тогда и думать начнут...
Вопрос: Как выбраться из «деревни» в мир IT?

Лучший ответ: Нет у вас никакого барьера. Вы его выдумали.
IT специальности тем и хороши, что нет там географического барьера.
Просто набирайтесь опыта в интересных вам технологиях, и штурмуйте сайты вакансий, фриланса и т.п.
дабы получить вожделенную удаленку.
Перебираться в МСК гда тратить > 40 на съем и поездки 1-2 ч. А смысл ?

Худший ответ: Самый главный барьер: это географический
Удалёнка же!
Вопрос: Как вы делаете транслитерацию текста в под url?

Лучший ответ: Вы удивитесь неожиданному названию библиотеки - transliterate.

Худший ответ: pip install python-slugify>>> from slugify import slugify
>>> slugify('Тестовый набор')
'testovyi-nabor'
Вопрос: C# — метод принимает в виде параметра другой метод, как понимать?

Лучший ответ: Setup - это обычный метод.
На Returns не обращайте внимания, он тоже обычный метод, он сам по себе, это просто Fluid, делегаты и лямбды здесь ни при чем.
А вот то, что записано в виде лямбда-выражения - это делегат.
Я тут написал пример с четырьмя подобными синтаксисами, отличающимися внешне, но по сути равнозначными, если вы его воспроизведете (создадите приложение WinForms, форму и кнопку с обработчиком) то поймете, что это и примерно зачем оно может применяться:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        public delegate void EventHandler2(
            int i
        );

        public Form1()
        {
            InitializeComponent();
        }

        void setEventHandler(EventHandler2 eh)
        {
            eh.Invoke(123);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Example 1
            setEventHandler(x => MessageBox.Show(x.ToString()));

            //Example 2 (equalent)
            setEventHandler((x) => { MessageBox.Show(x.ToString()); });

            //Example 3 (equalent)
            setEventHandler(delegate(int x) { MessageBox.Show(x.ToString()); });

            //Example 4 (equalent)
            setEventHandler(goodbyeDelegatesAndLambdas);
        }

        void goodbyeDelegatesAndLambdas(int x)
        {
            MessageBox.Show(x.ToString());
        }
    }
}

Худший ответ: Т е m => m.ApplyDiscount(It.IsAny()) является чем то в стиле анонимного делегата? А где тогда происходит объявление самого класса-делегата? Или это просто какое то сокращение? А компилятор всё создаст за нас?
Правильно ли я понимаю что строкаmock.Setup(m => m.ApplyDiscount(It.IsAny()))
равносильнаpublic delegate какойтотип MyDelegate(какойтотиппараметра m);

public какойтотип Method(какойтотиппараметра m)
{
return m.ApplyDiscount(It.IsAny());
}

MyDelegate myDelegate = new MyDelegate(Method);

mock.Setup(myDelegate.Invoke(какойтотиппараметра m));
поправьте если я не прав, пожалуйста
Вопрос: Как можно манипулировать блоками при помощи 1 класса?

Лучший ответ: Если применение только одного класса вам крайне необходимо, используйте :nth-child(), т.е.:order:nth-child( 1 ){...}
order:nth-child( 2 ){...}
order:nth-child( 3 ){...}
order:nth-child( 4 ){...}
order:nth-child( 5 ){...}
order:nth-child( 6 ){...}
order:nth-child( 7 ){...}
Подробнее, об nth-child() можно узнать тут: Псевдокласс :nth-child

Худший ответ: На родитель если, то в голову ничего по-быстрому не приходит. А вот на вложенный блок можно можно (margin).. Только родитель должен быть флексом.
(Кстати, значение margin:auto получило премию журнала Форбс в номинации «Самое влиятельное значение CSS-свойства внутри флекс-контейнера»)
UPD: А вот и мысль про родителя пришла. Те же флексы на контейнер с justify-content и align-items.
Вопрос: Как перенаправлять весь трафик на домен и получать ответ?

Лучший ответ: Тех. подробности давай там вариантов море:
1) фильтр по домену - регаешь домен и вешаешь на него анонимайзер. А может и поднятие прокси проканает, смотря как настроено.
2) фильтр по ip + хостинг от провайдера - то же самое решение.
3) внутренний сервис провайдера. Самое простое это mail. Раньше можно было найти скрипты сайт2mail, которые выкачивают url и отправляют по мылу. Чисто теоретически такое же можно замутить на систему внутренних сообщений или чата.
4) еще есть способ через dns проксировать, получая ответы в NS записях
Все они рабочие и медленные, последние два очень медленные.

Худший ответ: ха-ха
Вопрос: Почему не работает col-*-offset?

Лучший ответ: В новой версии альфы сократили написание класса отступа. 
Теперь вместо например col-md-offset-2 следует использовать offset-md-2

Худший ответ: Используй 3 бутстрап.
4 еще не вышел даже в бетку  и все-же он сыроват. 
 в 3 таких проблем нет
ну и да ты забыл<div class="container">
Вопрос: Как выполнить синхронную итерацию массива?

Лучший ответ: arr = Array.from({ length: 10 }, (v, k) => k);

function timeout(val){
    return new Promise((resolve, reject)=>{
        setTimeout(()=>{
            console.log(val);
            resolve();
        }, 1000 * Math.random());
    });
}
(async () => {
  for (const val of arr) {
    await timeout(val);
  }
  console.log('Расчет окончен');
})();

Худший ответ: Сначала промапить, потом выводить?
Вопрос: Как правильно подключать файлы в OpenServer?

Лучший ответ: Потому что в URL'e ведущий слеш считается от корня сервера, а в файловом пути, от корня диска.

Худший ответ: А если добавить впереди одну точку или две?
../
Вопрос: Чем занять рабочий стол Windows 10?

Лучший ответ: Если вам так удобно и вас всё устраивает, так зачем что-то менять? Как-то Сисадмин спросил:
– Учитель, не желаете ли красивую картинку для вашего десктопа? У меня есть коллекция "обоев для рабочего стола" со звёздным небом и моральным законом.
– Почему ты думаешь, что мой нынешний "wallpaper" хуже? – спросил в ответ Инь Фу Во.
– Я не знаю, какая у вас картинка сейчас. Я никогда не видел вашего десктопа. У вас всегда открыто множество окон.
– Я тоже его никогда не видел, – сказал почтенный Инь. – Я работаю.

Худший ответ: Возможно ради эстетики какой-нибудь walpaper engene там и виджеты есть примитивные, но ценой производительности
Вопрос: Куда и как расти проект менеджеру?

Лучший ответ: Устройтесь пмом в большую компанию и растите дальше
Их ваших рассуждений программист тоже тупиковая ветвь развития устроился в Гугл и дальше то расти не куда

Худший ответ: ПМ - это в первую очередь про взаимодействие людей, умение говорить, доносить свою точку зрения и умение мотивировать.
Высшее мастерство - это организовать какой-нибудь проект "на энтузиазме", привлечь в него профессионалов и удерживать их значительное время. Если сможете - значит вы в своей нише. Если нет (а 95% именно некомпетентные пм'ы) - значит или развиваться, или менять сферу деятельности.
Мне вот по обязанностям приходилось работать пм'ом, но для меня общение и управление другими людьми - обуза. По этому перешел в программисты. Управлять (давать команды) компьютеру, после управления людьми - это просто блаженство.
Кому-то же наоборот - "поездить по ушам" и "подбить на работу за спасибо" намного проще дается, чем что-то делать самому.
В общем, ответ зависит от вас. А кто вы - знаете только вы)
Вопрос: Что мне использовать в Navigation drawer? Активити или фрагменты?

Лучший ответ: Фрагменты, если сложное приложение

Худший ответ: Фрагменты, если сложное приложение
Вопрос: Как пополнять словарный запас, развлекаясь?

Лучший ответ: Познакомьтесь с англоязычной девушкой. Развлекайтесь с ней почаще.
Словарь сам собой расширится в процессе развлечения.

Худший ответ: Поиграть в гта или доту.
Вопрос: Как разделить текст на предложения на Python?

Лучший ответ: import re

text = '''
Первое предложение.

Второе предложение!

Третье предложение?

Четвёртое предложение...

Пятое предложение.

Ещё одно предложение…
'''

split_regex = re.compile(r'[.|!|?|…]')
sentences = filter(lambda t: t, [t.strip() for t in split_regex.split(text)])
for s in sentences:
    print(s)
Вывод:Первое предложение
Второе предложение
Третье предложение
Четвёртое предложение
Пятое предложение
Ещё одно предложение

Худший ответ: Тут важно более или менее точно знать используемые разделители.
Первое, что можно попробовать - модуль 're' и его функцию split (позволяет указать множество разделителей в отличие от встроенной):import re
prop = 'Ехал Грека. Через реку. Видит Грека - в реке рак... Сунул Грека руку в реку. Рак за руку. Греку. Цап'
re.split("\. |\.\.\. ", prop)
['Ехал Грека', 'Через реку', 'Видит Грека - в реке рак', 'Сунул Грека руку в реку', 'Рак за руку', 'Греку', 'Цап']
Вопрос: Существуют ли альтернативы Photoshop под Linux для верстки?

Лучший ответ: https://krita.org/ когда то это был форк от GIMP, но теперь GIMP курит в сторонке. Интерфейс очень похож(слизан)  на фотошоповский.

Худший ответ: Его можно запустить через PlayOnLinux, в чём проблема?
Вопрос: Что изучить C или C++?

Лучший ответ: Информационная безопасность требует от вас понимать, что такое эксплойт. Потому нужны оба языка. Может, не очень глубоко, но какой-то код надо писать на том и на другом.
Дело в том, что «няшная сишка» стала отличным полигоном для эксплойтов, да и низкоуровневые библиотеки пишут часто на ней (для компактности). А на Си++ пишут современный софт.
Раз вы на ПэХаПэ, вы не понимаете, что такое указатель, и потому лучше начать с Си++. Просто потому, что как-то можно программировать без указателей, а понять, что это за чёрт указатель — дело наживное.

Худший ответ: С C. 
Начинать учить C++ без него - все равно, что учиться кататься на роликах, не научившись сначала ходить.
Вопрос: Как убрать рамку сзади элемента (CSS)?

Лучший ответ: просто раздели на несколько блоков, задай рамки и склей.

Худший ответ: задать тексту фоном ту же самую картинку с background-attachment
Вопрос: Где можно почитать, про номера устройств в линукс, или что это такое?

Лучший ответ: https://ru.wikipedia.org/wiki/Блочное_устройство

Худший ответ: Александр Семененко, называется старший и младший номера устройств, нужно для ассоциации драйверов с устройствами. Делаем man ls, смотрим описание флагов:
-l     Выдавать (в одноколоночном формате) тип файла, права доступа к файлу, количество ссылок на файл, имя
       владельца, имя группы, размер файла (в байтах), временной штамп и имя файла.
       Типы файлов могут принимать следующие значения: - для обычного файла, d для каталога, b для блочного
       устройства, c для символьного устройства, l для символической ссылки, p для  FIFO  и  s  для  гнезда
       (socket).
       По  умолчанию,  временной  штамп  является  временем  последней модификации; опции -c и -u позволяют
       выбрать два других временных штампа.  Для  файлов  устройств,  поле  размера  обычно  заменяется  на
       старший и младший номера устройства.
Далее несложно гуглится
rus-linux.net/kos.php?name=/book1/gl-09/gl_09_02.html
dmilvdv.narod.ru/Translate/LDD3/ldd_major_minor_nu...
Вопрос: Как безопасно хранить информацию о балансе счета в бд?

Лучший ответ: А если все упирается в одно единственное поле которое может самопроизвольно изменится и вы даже не ведете списка операций, чтобы сверить соответствует ли сумма в этом поле сумме всех операций - то, конечно, такая система никак не защищена.
И даже не от злодея, а от простого программного сбоя не защищена.
1. Контрольные суммы. При изменениях будет видно. Естественно к алгоритму расчета контрольных сумм у админа не должно быть доступа.
2. Договор на бумаге. Будет отвечать за последствия.
3. Зашифрованная БД. То есть он админит её файлами, но не может админить содержимое. 
4. Логи со всеми операциями прихода и расхода денег со счета, где ведется баланс, сохраняются отдельно и время от времени сверяются с остатками баланса. Должно сходиться всегда.
5. Распечатка баланса (это такая весьма и весьма компактная таблица) и сохранение их в месте недоступном админу. Это баланс переходящий из даты в дату, то есть невозможно скорректировать так чтобы не видно было. Если убавит баланс в одном месте, то должен прибавать в другом - чтобы итог сохранился. Как сделать чтобы было видно, что человек исправил баланс в этом другом месте - вопрос не технический. 6. Все уже придумано до нас - называется двойная бухгалтерская запись.
В Европе известна с 15 века.
А в Америке - и того раньше, еще инки знали.
Например, ты не можешь взять деньги из касса, потому что кассир засечет и на тебя настучит (если кассир этого не сделает, то недостачу повесят на кассира). 
Если же ты взял деньги из кассы и изменил кассовый отчет, чтобы кассир этого не заметил, то изменится баланс других счетов.
7. Я даже встречался на практики, когда админа не подпускали к серверу физически. И интернета на сервере не было.
Он сидел на противоположенном конце комнаты и рассказывал человеку (доверенному лицу) - какие файлы куда скопировать и т.д.

Худший ответ: Трудовой договор и полиция. 
Собственно если я администрирую  сервер и имею прямой рут доступ то сложно будет меня от этого остановить технически.
Ну и можно например хранить сумму всех денег и отдельно ставить сколько ввели и вывели и блочить систему в случае расхождения, вероятно администратор не сечет что пишут в коде. Программисты.
Вопрос: Скрипты в Java. Как можно выполнить скрипт в ограниченном окружении?

Лучший ответ: А какие скриптовые языки, которые можно встроить в приложение на Java, поддерживают произвольное окружение (в теле скрипта доступен только тот набор объектов функций и т.д., который ты определяешь сам)? 
В первую очередь, конечно, JavaScript - есть "движок" Mozilla Rhino, именно на Java, я с ним лично работаю на Android, там именно ограниченное, произвольное окружение, также Python, тот же Lua, да наверно любой открытый можно как-то "прикрутить", включая саму Java, но для ее компиляции потребуется JDK, не знаю как с таким быть на Android.И какой из этого списка работает быстрей?
На производительность Rhino жалоб не поступало, в нем нет таких общих проблем, типа скрипт всего лишь выводит "hello world" и это уже занимает пять секунд, а насчет больших вычислений и т.п., это уже специфика.

Худший ответ: есть jython  интерпритатор пайтона
Вопрос: Как пробросить видеокарту NVIDIA в VMware ESXi 6.7?

Лучший ответ: Никак.
И vmware, и NVidia, каждый в отдельности и вместе противодействуют возможности проброса видюх потребительского класса в виртуалку, даже топовых.
Почему?
NVidia продвигает свои дорогущие K1/K2 как решения для виртуализации графических вычислений и не без оснований предполагает, что если такое разрешить - то все будут пробрасывать обычные геймерские видюхи, а на K1 положат :)
VmWare хочет продавать свои решения по клиентской виртуализации - а если у юзера будет возможность просто пробросить в виртуалку топовую видюху - кто их будет покупать?
Поэтому, если у Вас нет бабла на NVidia GRID K1 - забейте. Такое не канает. У некоторых говорят получалось такое с KVM, но у меня повторить не получилось, хотя опять же по слухам AMD/ATi можно таким образом пробросить.

Худший ответ: Попробуйте в ESXi webclient, нажать правой кнопкой на VM > Edit Settings > VM Options > Advanced > Edit Configuration > Add Parameter:
hypervisor.cpuid.v0 = "FALSE"
И пробросить PCI адптер в режиме Passthrough, но производительность будет все же не такая как если бы не было виртуализации
Вопрос: Мак для верстальщика?

Лучший ответ: Докиньте в текущий комп еще 8гб оперативы и этого будет более чем достаточно для работы на ближайшие 3-5лет.

Худший ответ: учусь сейчас на дизайнера и хотел бы связать жизнь с версткой
Так это разные профессии. Для дизайнера MAC самое то. Для верстальщика сомнительно, хотя если совмещать дизайн и верстку - наверное оправдано. Дорого, нерационально, но не настолько же странно, как для php разраба, например. 
лично я бы взял стационарный комп + широкоформатный дисплей. И оставил MAC тем кто хочет выделиться или имеет n*150k денег или дизайнеры с большой буквы ПИ. Вам не рекомендую, если надо получить максимум за 150k - apple последний бренд в списке должен быть.
Вопрос: Можно ли развитие алгоритмов ИИ поместить в блокчейн?

Лучший ответ: Можно ли развитие алгоритмов ИИ поместить в блокчейн?Да.
Блокчейн это по сути база данных. И в эту базу данных можно записывать любую информацию, хоть погоду в африке.можно ли реализовать такой блокчейн, где алгоритмом proof-of-work в качестве nonce майнеры бы решали задачу backpropagation для обучения различных нейронок?Нет. Майнеры обеспечивают функционирование сети. 
Если вам нужно решать другие задачи - никто не мешает, пускайте свои мощности на решение нужных задач, а не на поддержку функционирования сети.

Худший ответ: Нет, нельзя.
Proof of системы (то, что ты описал) созданы для защиты блокчейна и, опуская детали, должны быть: 
а) Не подделываемыми;
б) Легко проверяемыми;
Процесс обучения не подходит ни по первому, ни по второму признаку. Если очень хочется связать ИИ с блокчейном, то копай в сторону механизмов эфира
Вопрос: Mysql как настроить OpenVZ?

Лучший ответ: Зависит конечно от того что делать с ним, но 256мб это ну совсем пиздецки мало.
Из коробки mysql-server наверно даже не заведется на дефолт настройках, надо минимум 500мб или больше.что требуется для этого?
apt-get install mysql-server
всё

Худший ответ: Для MySQL хватит, но лучше больше памяти, чтобы хранить кеш БД.
Вопрос: Что изучать .NET программисту?

Лучший ответ: Учите все, пока не сходите на собеседования и там вам скажут, что нужно учить

Худший ответ: или продвинутый десктоп:
- (в корпоратив) WPF&MVVM&SQL(при чем желательно еще и опыт разных ;)
- или эксклюзив типа https://ru.wikipedia.org/wiki/OpenCV upd есть отличные обертки
- или нейросети/(бигдата? но с реальным пониманием) upd имеется в виду добавить в копилку F#, а там связи станут более очевидными ;))
- или криптография upd блокчейны?
... иначе - "заурядные" вебсервисы ))
.. возможно это вечная проблема - есть люди, которые пытаются учить много, но всега попадают не туда, где это уже нужно.. и есть люди, которые много двигаются, и все время куда то попадают.. и на ходу, доучивают что то еще... (ну и какой то середнячек, со средней степенью везения... к примеру 1С... практически гарантия трудоустройства.. + тошноты от работы ))
Вопрос: Оцените пожалуйста верстку, что я делаю не так?

Лучший ответ: Для начала сайт очень тяжелый 15Мб, надо снизить хотя бы максимум до .5Мб.
PS. По критике, посмотри все ролики https://www.youtube.com/channel/UCaTfYudJUVA8cV_Bu...
потом сам оценишь свой сайт.

Худший ответ: К сожалению, вам еще рано выносить свои работы для оценки. ... что я делаю не так?
В ответ на ваш вопрос - можно сказать одно: Вы не учитесь, а хотите чтобы мы все сделали за вас.
Начать стоит с того что материалов по SASS в интернете больше чем нужно, вы видимо даже не пытались разобраться с этим.
По сайту можно сделать вывод что вы так не разбирались даже с HTML, вы даже не умеете использовать теги HTML (речь именно о HTML5).
Отдельный вопрос стоит уделить графике сайта, после того как я открыл фон в ~7000 пикселей в высоту дальше не стал смотреть, особенно выбор PNG смутил.
Разбирать в вашей работе просто нечего, начать нужно с основ. О JS вообще даже упоминать не хочется.
Вопрос: Какие порты и протоколы закрывать на сервере Windows?

Лучший ответ: Закрыть всё, открыть только используемые.

Худший ответ: Брандмауэр, это понятно - пользовался. И таблица в Wiki - тоже понятно. Я хочу закрыть на основе коммутатора/свича. Т.е. я правильно понимаю, необходимо закрыть все, а потом на основе таблицы, открыть только нужное? Но наверняка, есть какой то список, минимально необходимых портов для windows server, от которого отталкиваться. Легче же открыть минимум необходимого, а потом по мере необходимости добавлять. Вот такой список, будет минимально достаточным, для windows server в домене:53/TCP,UDP	DOMAIN (Domain Name System)
67, 68/UDP
и для кучи открыть порты вот из этой таблицы
или это избыточно или недостаточно?
Вопрос: Чем отличается Object.setPrototypeOf от Object.create?

Лучший ответ: Object.setPrototypeOf(foo, bar)` 
- проставляет ссылку на bar в foo.__proto__

const bar = Object.create(foo)
 - создает новый объект bar  и bar.__proto__ будет указывать на foo.

Разница в том, что 1 всего лишь проставляет ссылки, памяти под новый объект не выделяется
А второй метод создает новый объект.

Худший ответ: Crete создаёт прототип в объекте , а setPrototypeOf типо передает другому объекту ( первый параметр) прототип указанный вторым параметром. Как то так
Вопрос: Как сделать перелистывание страницы с эффектом и без перезагрузки?

Лучший ответ: Чудо называется PJAX.
Можете посмотреть либу barba.js, на оф. сайте есть примеры

Худший ответ: Эм... Я бы сделала такую штуку в виде слайдера. Контролы-кнопки, моднявый хоризонтал-скролл... *Сейчас меня закидают помидорами
Берите Owl, Slick, bxslider карусели.
Вопрос: Почему не считает?

Лучший ответ: Потому что в selectCost у вас строка, которая не преобразуется в double

Худший ответ:  String selectCost = "select Cena from Mater where IdMat ='" + Value1 + "'";
            double Summa = Convert.ToDouble(selectCost) * Convert.ToDouble(count);
Скажите, а вы вообще понимаете что здесь написано? 
На случай если нет - вы в строковую переменную написали select-запрос(причем сразу с уязвимостью), а потом данный запрос пытаетесь преобразовать в дробное число. И какой результат хотите получить?
Вопрос: Какой API выбрать для распознавания речи в фильмах?

Лучший ответ: Автоматические субтитры на ютубе явно показывают что даже обычную речь(без шумов особых от говорящих блогеров) английскую достаточно сильно надо корректировать после распознавания.
А апи например яндекса годится в основном для односложных запросов например при навигации по телефонному голосовому меню, для чего собственно и используют такие апи. Т.е. распознавание на уровне да, нет, цифры.
Ну или заточенные системы под что-то конкретно типа адресов, где можно провести неточный поиск.
Субтитры для слабаков чтоль?

Худший ответ: Еще как замахнулись. Если хотите переводить "разговорный" английский, вряд ли такое вообще возможно.
Дело в том, как они говорят. Очень много сокращений (reductions), прилично слэнга и идиом, которые тоже комкаются и распознать их можно только на слух. Разве что Вам нужен преобразователь в звуки, и на основе неких паттернов сюда примешаете какой-нибудь ML.