Skip to content

Implementación

Configurar el reconocedor

Importe el framework SORI y configure el reconocedor compartido con las credenciales de su aplicación SORI.

swift
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.

swift
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.

swift
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:

swift
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.

swift
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():

swift
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")
    }
}