Звук TTS возвращается в микрофон даже при включенном iOS AEC (AVAudioSession.voiceChat)IOS

Программируем под IOS
Ответить
Anonymous
 Звук TTS возвращается в микрофон даже при включенном iOS AEC (AVAudioSession.voiceChat)

Сообщение Anonymous »

Я разрабатываю голосовое приложение для iOS (Xcode), аналогичное голосовому режиму ChatGPT.

В настоящее время приложение тестируется на iPhone SE.
Предполагаемое поведение
  • Если во время воспроизведения TTS пользователь начинает говорить, TTS должен немедленно стоп.
  • После этого должен начаться новый процесс обработки (STT → генерация ответа).
Проблема
Проблема в том, что звук TTS зацикливается обратно в микрофон.

Из-за этого, даже когда пользователь не говорит, приложение обнаруживает аудиовход, поступающий со своего собственного выхода TTS, останавливает воспроизведение TTS и неправильно запускает новый процесс.
В результате TTS часто прерывается, и приложение не может надежно различать:
  • реальную речь пользователя и
  • звук, генерируемый приложением (TTS).
Попытка решения (AEC)
Я попробовал включить акустическое эхоподавление iOS (AEC) с помощью AVAudioSession в режиме voiceChat:

Код: Выделить всё

try audioSession.setCategory(
.playAndRecord,
mode: .voiceChat,
options: [
.duckOthers,
.allowBluetooth,
.allowBluetoothA2DP
]
)
Однако это не решило проблему с обратной связью.

Звук TTS по-прежнему захватывается микрофоном и активирует распознавание голоса.
Пожалуйста, помогите мне разобраться.

Подробнее здесь: https://stackoverflow.com/questions/798 ... audiosessi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»