Обнаружение автоответчика (AMD) с Twilio .. Но постфактум

Проблема

Хотелось бы определить, ответил ли на входящий вызов человек или машина.

Подробности

Я использую Twilio. И у Twilio есть эта функция. Однако то, как это реализовано в их системе, кажется мне неподходящим для моего варианта использования.

Twilio использует обнаружение автоответчика для управления потоком вызова. Из-за этого Twilio ждет несколько секунд после соединения вызова, чтобы проанализировать звук от вызова, чтобы определить, является ли это автоответчиком. Соединение вызова продолжается только после того, как вызов будет отложен и не будет выполнен анализ.

Для моего случая использования. То, что на звонок ответил человек или машина, не влияет на поток вызовов ... поэтому в задержке нет необходимости. Это влияет только на статистику, которая понадобится позже. А именно в этом случае. Как часто человек, которому я плачу за то, чтобы ответить на звонок, на самом деле отвечает на звонок, а не пропускает звонок и позволяет ему перейти на голосовую почту?

Все входящие звонки переадресовываются на телефон. Обычно мобильный телефон.

Вопрос

Есть ли способ определить идентификатор, на который ответил человек или машина, но без задержки с помощью Twilio?

Если нет, то есть ли еще один шаблон, о котором я не думал, который можно использовать для достижения той же цели? (Чтобы определить частоту, с которой сотрудник отвечает на телефонные звонки, а не пропущенные звонки)

Другие вещи, которые я рассмотрел

  • Extend the number of rings on the cell phone, then let Twilio take the voice mail instead of the cell phone provider's voice mail.
    • The problem with this solution is that a lot of cell phone providers do not allow you to change the number of times that the phone will ring before voice mail picks up. Even more difficult is that the number of rings is not set. The cell phone provider might take a more or less time to locate the phone and this counts against the amount of time that the phone will ring before it goes to voice mail.
  • Implement answering machine detection within my own application (Python)
    • This is probably a viable alternative. The problem here is that I know very little about how Python could be used to analyze an audio file to see if it sounds like a person or a machine picked up.

person Chris Dutrow    schedule 22.09.2014    source источник
comment
Здесь были некоторые обновления AMD: twilio .com / docs / api / rest /.   -  person Megan Speir    schedule 28.03.2017


Ответы (1)


Сначала немного истории о том, как анализ выполнения вызова (CPA) используется для обнаружения автоответчиков. Не существует стандарта для автоответчиков и, следовательно, нет надежного последовательного метода обнаружения. Все системы используют CPA для определения того, как долго длится голос после ответа на звонок. Обычный человек ответит просто «Привет», тогда как автоответчик получит более длинное приветственное сообщение. CPA просто ищет длину голоса в начале вызова, и если она превышает определенный порог, то предполагает наличие автоответчика. Некоторые также могут обнаружить звуковой сигнал, который издает автоответчик, когда пришло время оставить сообщение, но опять же, для звукового сигнала не используется стандартный тон, поэтому он также может быть непоследовательным.

Я хочу сказать, что ни одна система не имеет 100% точности в обнаружении систем голосовой почты, и некоторые люди даже пытаются обмануть эти системы, просто помещая «Привет» в качестве приветствия в голосовой почте. Если вам нужна точность, вы можете предоставить простую подсказку в начале, которая требует ответа DTMF. Если он переходит к голосовой почте, система не сможет ответить вводом DTMF, и поэтому вы знаете, 1) у вас есть система голосовой почты или 2) у вас есть человек, который не отвечает. Похоже, в вашем бизнес-кейсе, что пользователю выгодно ответить, поэтому он и сделает. Некоторые системы идут дальше, если им нужно идентифицировать конкретного человека, заставляя пользователя вводить PIN-код, который их идентифицирует.

Я не думаю, что с Twilio вы сможете сделать обнаружение постфактум. Если вам это действительно нужно, я бы использовал XML для управления вызовами (CCXML) и VoiceXML. В CCXML это происходит не постфактум, а параллельно. Пока ваше приложение VoiceXML работает, CCXML может продолжать работать в фоновом режиме, выполняя CPA. Вы даже можете отправлять сообщения в другую веб-службу из CCXML, чтобы обновлять ход выполнения фонового CPA, пока голосовое приложение продолжает работать. Voxeo имеет отличную реализацию CCXML. Их технический директор является главным редактором этого стандарта W3C. Кроме того, их реализация CPA - одна из лучших, которые я когда-либо использовал. Их автоответчики лучше всего обнаруживают и обычно даже улавливают звуковой сигнал. В онлайн-документации Voxeo для CCXML есть хорошее описание реализации обнаружения автоответчика.

person Kevin Junghans    schedule 24.09.2014