Implementación
Configurar el reconocedor
Importe el framework SORI y configure el reconocedor compartido con las credenciales de su aplicación SORI.
import SORI
let recognizer = SORIAudioRecognizer.shared()
let configuration = SORIAudioRecognizer.Configuration(
applicationID: "YOUR_SORI_APP_ID",
secretKey: "YOUR_SORI_SECRET_KEY"
)
recognizer.configure(configuration)Iniciar el reconocimiento
Llame a startRecognition(repeat:handler:) después de realizar la configuración. El handler recibe el payload de la campaña que devuelve la API de SORI cuando se reconoce un material registrado.
recognizer.startRecognition(repeat: true) { media, error in
if let error {
print("SORI recognition error: \(error)")
return
}
guard let campaign = media as? [String: Any] else {
return
}
handleRecognizedCampaign(campaign)
}Activar el reconocimiento de Audio Marker
El reconocimiento de Audio Marker está desactivado de forma predeterminada. En el modo predeterminado, el reconocimiento en iOS utiliza únicamente huellas digitales de audio. Actívelo solo si su configuración de SORI Console utiliza Audio Markers.
let configuration = SORIAudioRecognizer.Configuration(
applicationID: "YOUR_SORI_APP_ID",
secretKey: "YOUR_SORI_SECRET_KEY"
)
configuration.audiomarker = true
configuration.audiomarkerChangeHandler = { marker in
print("Audio Marker:", marker ?? "none")
}
recognizer.configure(configuration)Cuando el resultado de una campaña está asociado a un marcador detectado, este puede incluirse como marker o trait.marker en el payload de reconocimiento:
recognizer.startRecognition(repeat: true) { media, error in
guard let campaign = media as? [String: Any], error == nil else {
return
}
let marker = campaign["marker"] as? String
?? ((campaign["trait"] as? [String: Any])?["marker"] as? String)
if let marker {
print("Campaign marker:", marker)
}
}En el servidor, SORI Console asigna el marcador detectado a los atributos configurados del Audio Marker para el historial de actividad, las estadísticas, los informes y los webhooks.
Detener el reconocimiento
Detenga el reconocimiento cuando su aplicación ya no necesite capturar audio del micrófono.
recognizer.stopRecognition()Reconocimiento en segundo plano
Si su aplicación necesita reconocimiento en segundo plano, añada audio a UIBackgroundModes en Info.plist. El reconocimiento en segundo plano funciona mientras la aplicación está en ejecución. Si la aplicación finaliza, el reconocimiento también se detiene.
Gestión de errores
Los errores de reconocimiento se entregan mediante el handler de reconocimiento y las notificaciones de error de SORI. Para observar estas notificaciones, regístrese en SORIError.errorNotificationName():
NotificationCenter.default.addObserver(forName: SORIError.errorNotificationName(), object: nil, queue: OperationQueue.main) { notification in
guard let error = notification.object as? NSError,
let code = SORIErrorCode(rawValue: error.code) else {
print("Unknown error notification: \(notification)")
return
}
if code == .authenticationFailure {
print("Failed to authenticate")
}
}