shikhalev.org
Скриншот главного экрана Merlin Bird ID

Активные пользователи iNaturalist, наверное, знают, что хотя там есть возможность загружать зву­ко​вые наблюдения, тамошний интеллект распознавать их автоматически не уме­ет. Это довольно печально, поскольку услышать многих птиц гораздо легче, чем увидеть, а тем более сфотографировать. Я, к то­му же, очень плохо запоминаю звуки и, соответственно, не мо­гу полагаться на се­бя в пла­не такого распознавания.

И вот, наконец-то, благодаря Василию Вишневскому, его второму ютуб-каналу, я узнал о за­ме­ча­тель­ном приложении, которое эту задачу решает. Его короткое видео по это­му по­во­ду — «Как узнать кто поет? Приложение для смарт­фо­на» — советую посмотреть (а тем, кто интересуется птицами и бердвотчингом, рекомендую подписаться на его основной канал). Я же здесь хочу изложить собственный опыт.

Приложение называется Merlin Bird ID и позволяет определять птиц не толь­ко по го­ло­су, но и по фо­то­гра­фии, а также как в клас­си­чес­ких оп­ре­де­ли­те­лях — по клю­чам. Однако лично мне интересно именно голосовое распознавание и только им я и пользовался.


Кстати, Merlin — это не толь­ко волшебник из ле­генд о ко­ро­ле Артуре, но и пти­ца — сокол дербник (Falco columbarius). Птица вполне обычная для все­го северного полушария, включая и наши края.

Функциональность

  • Merlin действительно распознает голоса птиц, причем делает это даже че­рез шум и, главное, умеет распознавать нескольких поющих одновременно. Это очень большой и важный плюс. Распознает не иде­аль­но, но все-таки.

    Кстати, довольно плохо распознает врановых. Возможно, так работает ка­кой-то шу­мо­дав, подрезая низкие частоты.

    Для рас­поз­на­ва­ния в прин­ци­пе достаточно встроенного микрофона в те­ле­фо­не, хотя, конечно, с внеш­ним получается лучше.

  • Звук при рас­поз­на­ва­нии сохраняется в файл формата WAV, который затем можно перекинуть на ком­пью­тер и там что-то с ним поделать. А можно и наоборот, скинуть на те­ле­фон WAV-файл из дру­го­го источника и запустить распознавание на нем.

  • Наблюдения можно сохранять в свой список наблюдений/видов. Тут, правда, есть два неприятных момента:

    • Во-первых, что-то у меня не за­да­лось с ло­ги­ном на eBird че­рез Mer­lin. То ли санкции так действуют, то ли я криворукий.

    • Во-вторых, что гораздо печальней, сохранение не ра­бо­та­ет офф­лайн. В ито­ге, если наблюдение сделано там, где нет связи, то сохранить его не по­лу­чит­ся. При этом файл звука сохраняется, а вот ко­ор­ди­на­ты — нет. Приходится их восстанавливать из об­ще­го трека1.

Мой порядок действий

Предварительно нужно не толь­ко установить приложение на те­ле­фон, но и внутри него скачать данные для рас­поз­на­ва­ния («птичьи пакеты»). Я себе скачал как Европу, так и Россию. Пробовал ставить также Центральную Азию, но начал получать много явно лож­но­по­ло­жи­тель­ных срабатываний. Еще отдельно стоит выбрать и выкачать язык названий. Или использовать английский, но лично мне это не­удоб­но — логика исторически сложившихся в раз­ных языках названий разная и просто так не пе­ре­во­дит­ся, а международные названия все равно латинские (и их отображение в на­с­трой­ках стоит включить2).

Скриншот записи
  1. Я использую внешний микрофон BOYA BY-MM1, покупал я его для камеры, но и с те­ле­фо­ном он прекрасно работает. Вообще, конечно, для за­пи­си птиц это далеко не луч­ший вариант, зато уже имеется в на­ли­чии.

    Внешний микрофон довольно заметно улучшает распознавание, а главное, делает запись куда более четкой. Загружать записанное со встро­ен­но­го я, пожалуй, не со­ве­тую — будет очень тихо (и очень шумно после нормализации).

    При этом по крайней мере мой микрофон сильно подвержен наводкам. Поэтому при записи я включаю авиа­ре­жим, иначе будут очень противные помехи, которые вро­де бы на рас­поз­на­ва­ние не осо­бо влияют, но выкладывать потом запись на iNa­tu­ra­list уже несколько стыдно. Авиа­ре­жим решает эту проблему полностью.

  2. Записываю я обычно порядка двух минут, стараясь не ше­ве­лить­ся, чтобы не со­зда­вать незаметных для се­бя, но очень заметных для мик­ро­фо­на шумов. Дополнительный плюс — за это время многие птицы успокаиваются и начинают подлетать ближе, и после записи их можно и пофотографировать.

  3. После записи нужно сохранить себе в спи­сок хо­тя бы одну распознанную птицу, иначе координаты записи не со­хра­нят­ся. А пе­ред этим отключить авиа­ре­жим, поскольку, как я уже сказал, оффлайн сохранение не ра­бо­та­ет. Помещение птицы в спи­сок делается через не впол­не очевидную кнопку «Это моя птица»… Впрочем, в кон­тек­с­те она бо­лее-ме­нее очевидна, но чтобы до нее добраться нужно тап­нуть на рас­кры­ва­ю­щий уголок справа от на­зва­ния птицы и промотать экран вниз, поскольку сначала будут предъявлены примеры голоса данной птицы.

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

  4. А следующий этап проходит уже дома на компьютере. Из большого записанного файла нарезаю фрагменты (10–20 секунд), где шумов поменьше, а пение, наоборот, максимально отчетливое. Для ускорения поиска как раз и нужны указания от Merlin на начало фрагмента. Звук на записи даже с внешним микрофоном очень тихий, поэтому включаю нормализацию в редакторе. Использую банальный KWave, подойдет любой простой звуковой редактор, способный нарезать кусочки и нормализовать громкость.

    Для проверки готовые фрагменты закидываю обратно на телефон и Merlin’ом же проверяю, распознает ли он там ту же птицу. Если у вас со слухом не все так плохо, как у меня, без этого этапа можно вполне обойтись.

  5. В итоге конвертирую файл в формат MP3 посредством soundKonverter и загружаю на iNaturalist. Попытки загрузить не­с­кон­вер­ти­ро­ван­ный WAV ни к чему хорошему не при­ве­ли — во-пер­вых зачастую он не проходит по лимиту размера файла, а во-вторых, не проигрывается встроенными средствами на странице наблюдения.

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

Общие впечатления

В целом я очень и очень доволен.

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

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

А если говорить только о приложении, то я бы отметил два основных недостатка:

  • Проблемы с определением врановых. Зачастую просто игнорирует.

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

И, если честно, хотелось бы такую функциональность иметь прямо в iNaturalist, чтобы не метаться ту­да-сю­да…

  1. См. пост «Как я ставлю геометки к фотографиям». Там и про за­пись трека и про его чистку от «вы­ле­тов». 

  2. Как русские, так и английские названия в раз­ных источниках могут не со­от­вет­с­т­во­вать друг другу, в том числе могут различаться в ба­зе eBird (с ко­то­рой работает Mer­lin) и в iNa­tu­ra­list. Латинские, правда, тоже от это­го не за­страхо­в­аны полностью, но все-та­ки расхождения а) менее вероятны, б) отслеживаются списками синонимов, переименований таксона и т.д. В об­щем, если хотите поискать информацию о ка­ком-ни­будь виде, всегда ориентируйтесь на ла­тин­с­кое название, тем более, что в на­уч­ных публикациях оно будет обязательно, а вот анг­лий­с­кое — опционально.