Для тех, кто не знает, что такое гомофон , я привожу следующие примеры:
- наши & являются
- привет и высоко
- до & тоже & два
При использовании Speech API , включенного в iOS, я сталкиваюсь с ситуациями, когда пользователь может произнести одно из этих слов, но он не всегда возвращает желаемое слово.
Я заглянул в свойство [alternativeSubstrings]
( link ), пытаясь понять, поможет ли это, но при тестировании вышеупомянутых слов оно всегда возвращается пустым.
Я также заглянул в Natural Language API , но не смог найти там ничего полезного.
Я понимаю, что когда пользователь добавляет больше слов, Speech API может начать выводить контекст и корректировать их, но мой вариант использования не будет хорошо работать с этим, поскольку ему часто требуется максимум одно или два слова, ограничивая Эффективность контекста.
Пример контекстной обработки:
Используя слова выше, я получаю следующие результаты:
Однако, если я соберу следующее предложение, вы увидите, что все они ошибочны:
Я слишком высоко для нашей лестницы
В идеале, я бы либо получил список обратно, содержащий [are, our], [to, too, two], [hi, high]
для каждого сегмента транскрипции, либо имел бы способ сравнить строку с функцией, которая поддерживает гомофоны.
Примером этого будет:
if myDetectedWord == "to" then { ... }
Где myDetectedWord
может быть [to, too, two]
, и эта функция будет возвращать true для каждого из них.