Gesprächsaufzeichnung und Transkription

Übersicht

Die Vonage Voice API bietet verschiedene Möglichkeiten zur Aufzeichnung von Telefongesprächen. Sie können:

  1. Aufzeichnung eines Gesprächs zwischen zwei Personen in passiver "Monitor"-Manier.
  2. Nehmen Sie den Ton eines einzelnen Anrufers auf, wenn er dazu aufgefordert wird. Zum Beispiel in einem Voicemail-System.
  3. Aktivieren Sie die Aufzeichnung für ein benanntes Gespräch (Verwendung der Konversationsaktion).

Standardmäßig sind alle Aufnahmen im Monoformat, d. h. alle Gesprächsteile werden in einem einzigen Kanal aufgezeichnet.

Vonage bietet auch eine Split-Aufnahme Funktion, bei der das Audio als Stereodatei gespeichert wird. In diesem Fall befindet sich das vom ersten Anrufer gesprochene Audio im linken Kanal und das vom ersten Anrufer gehörte Audio im rechten Kanal. Dies ist oft nützlich für die Weitergabe an Transkriptionssysteme, wenn Sie feststellen möchten, wer was gesagt hat.

Um ein Gespräch aufzuzeichnen, können Sie die Taste record Aktion in einer NCCO. Je nachdem, wie Sie die Aktion konfigurieren, verhält sich die Aufzeichnung unterschiedlich. Weitere Informationen zur Konfiguration einer Aufzeichnung finden Sie in der NCCO-Referenz aufzeichnen

Sobald die record Aktion endet, sendet Vonage einen Webhook an den eventUrl die Sie bei der Konfiguration der record Aktion. Dieser Webhook enthält eine URL, von der die Aufzeichnungsdatei heruntergeladen werden kann. Sie müssen sich mit einem JWT authentifizieren, das mit demselben Anwendungsschlüssel signiert ist, mit dem die Aufzeichnung erstellt wurde, um die Aufzeichnungsdatei herunterladen zu können.

Transkription aufrufen ist ebenfalls verfügbar; Vonage sendet einen Webhook an eine eventUrl sobald die Transkription abgeschlossen ist. Dieser Webhook enthält eine URL, unter der die Transkription abgerufen werden kann. Ähnlich wie bei der Aufzeichnung müssen Sie sich authentifizieren. Bitte beachten Sie, dass dies eine kostenpflichtige Funktion ist; die genauen Preise finden Sie auf der Seite Voice API-Preise Seite unter 'Programmierbare Funktionen'.

HINWEIS: Nachdem Ihre Aufzeichnung abgeschlossen ist, wird sie von Vonage 30 Tage lang gespeichert, bevor sie automatisch gelöscht wird.

Synchrone Aufzeichnung

A record Aktion wird abgeschlossen, wenn entweder die endOnSilence Timer erreicht wurde, oder die endOnKey Taste gesendet wird oder die timeout Wert erreicht ist. An diesem Punkt wird die Aufzeichnung beendet und ein Aufzeichnungsereignis wird an Ihr event_url bevor die nächste Aktion ausgeführt wird. Dies wird für Szenarien verwendet, die der Voicemail ähneln.

Asynchrone Aufzeichnung

Wenn keine der endOnSilence, endOnKey oder timeout gesetzt ist, arbeitet die Aufzeichnung asynchron und fährt sofort mit der nächsten Aktion fort, während der Anruf weiter aufgezeichnet wird. Die Aufzeichnung wird erst beendet und das entsprechende Ereignis gesendet, wenn der Anruf beendet ist. Dies wird für ähnliche Szenarien wie die Anrufüberwachung verwendet.

Wenn Sie eine benannte Konversation aufzeichnen, erfolgt die Aufzeichnung immer asynchron und ist an den Lebenszyklus der Konferenz gebunden. Um eine Konferenz aufzuzeichnen, müssen Sie die Option record Attribut zu true in Ihrem conversation Maßnahmen im Rahmen des NCCO.

Geteilte Aufnahme

Wenn Sie einen Anruf aufzeichnen, können Sie die geteilte Aufzeichnung aktivieren, was dazu führt, dass die Aufzeichnung eine Stereodatei ist, bei der ein Kanal den vom Anrufer gesendeten Ton enthält und der andere Kanal den vom Anrufer gehörten Ton.

Mehrkanalige Aufzeichnung

Bei der Aufzeichnung eines Anrufs können Sie die Mehrkanalaufzeichnung aktivieren, bei der bis zu 32 Gesprächsabschnitte separat aufgezeichnet werden können. Es wird eine Datei mit der eingestellten Anzahl von Kanälen zurückgegeben.

In diesem Beispiel starten wir eine Mehrkanalaufnahme, die drei Teilnehmer erwartet (channels: 3), dann werden zwei weitere Numbers mit dem Gespräch verbunden. Jeder Teilnehmer erscheint in seinem eigenen Kanal in der Aufzeichnung.

Für weitere Informationen über die record Aktion, siehe die NCCO-Referenz

[
  {
    "action": "record",
    "eventUrl": ["https://example.com/recordings"],
    "split": "conversation",
    "channels": 3
  },
  {
    "action": "connect",
    "eventUrl": ["https://example.com/events"],
    "from":"447700900000",
    "endpoint": [
      {
        "type": "phone",
        "number": "447700900001"
      }
    ]
  },
  {
    "action": "connect",
    "eventUrl": ["https://example.com/events"],
    "from":"447700900000",
    "endpoint": [
      {
        "type": "phone",
        "number": "447700900002"
      }
    ]
  }
]

Wenn Sie eine weitere connect Bei dieser NCCO würden die ersten beiden Teilnehmer in ihren eigenen Kanälen erscheinen, während die Teilnehmer drei und vier gemeinsam in Kanal 3 erscheinen würden. In diesem Szenario müssten Sie die Anzahl der Kanäle auf 4 erhöhen, damit jeder Teilnehmer einen eigenen Kanal erhält. Sie können bis zu 32 Teilnehmer in einer einzigen Konversation haben.

Dateiformate

  • Vonage unterstützt die Aufnahme im MP3-, OGG- oder WAV-Format. Die Standardeinstellung ist MP3 (oder WAV für die Aufnahme von mehr als 2 Kanälen).
  • MP3-Dateien werden mit einer Tiefe von 16 Bit und einer Abtastrate von 16 kHz aufgezeichnet. Sie werden mit einer konstanten Bitrate von 32 Kbps kodiert.
  • WAV-Dateien werden mit einer Tiefe von 16 Bit und einer Abtastrate von 16 kHz aufgezeichnet.

Alle Formate sind standardmäßig mono. Wenn die geteilte Aufnahme aktiviert ist, wird für jeden Kanal eine Stereodatei mit der oben genannten Bittiefe und Abtastrate erstellt.

Transkription

Wenn die transcription gesetzt ist, wird die Aufnahme mit dem Standardwert für language, en-US:

[
    {
        "action": "record",
        "eventUrl":["https://example.com/recording"],
        "transcription": {}
    }
]

Bitte beachten Sie: Für die Transkription von Sprachanrufen gilt eine Höchstdauer von 2 Stunden.

Außerdem ist dies eine kostenpflichtige Funktion; die genauen Preise finden Sie auf der Voice API-Preise Seite unter 'Programmierbare Funktionen'.

Mit den Transkriptionseinstellungen können Sie eine benutzerdefinierte eventUrl und language für Ihre Transkriptionen. Weitere Informationen finden Sie auf der Website NCCO-Referenz. Sie können auch eine Stimmungsanalyse für jedes Segment der Anrufaufzeichnung durchführen.

[
    {
        "action": "record",
        "eventUrl":["https://example.com/recording"],
        "transcription":
        {
            "eventMethod": "POST",
            "eventUrl":["https://example.com/transcription"],
            "language": "en-US",
            "sentimentAnalysis": "true"
        }
    }
]

Sobald die Transkription abgeschlossen ist, wird ein Rückruf an Ihre Aufnahme gesendet eventUrl. Wenn eine Aufnahme eventUrl nicht angegeben ist, wird der Webhook an die Webadresse Ihrer Anwendung gesendet. eventUrl:

{
  "conversation_uuid": "CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "recording_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
  "status": "transcribed",
  "transcription_url": "https://api.nexmo.com/v1/files/bbbbbbbb-aaaa-cccc-dddd-0123456789ab",
  "type": "record"
}

Die Verwendung des transcription_url können Sie eine

GET
-Anfrage stellen, um die Transkription abzurufen. Sie müssen sich mit einem JWT authentifizieren, das mit demselben Anwendungsschlüssel signiert ist, mit dem die Aufzeichnung erstellt wurde. Die Antwort des transcription_url enthält die Sätze und eine Wort-für-Wort-Aufschlüsselung mit den jeweiligen Konfidenz- und Stimmungsanalyseergebnissen:

{
  "ver": "1.0.19",
  "request_id": "6226182254ce513117079b58",
  "channels": [
    {
      "transcript": [
        {
          "sentence": "Transcription example test.",
          "timestamp": 9630,
          "duration": 2642,
          "action_items": [],
          "questions": [],
          "answers": [],
          "raw_sentence": "transcription example test",
          "words": [
            {
              "word": "transcription",
              "start_time": 9630,
              "end_time": 10887,
              "confidence": 1
            },
            {
              "word": "example",
              "start_time": 10952,
              "end_time": 11726,
              "confidence": 0.990055
            },
            {
              "word": "test",
              "start_time": 11728,
              "end_time": 12272,
              "confidence": 0.486845
            }
          ],
          "sentiments": [
            {
              "text_part": "transcription example test",
              "score": 0.1213
            }
          ]
        }
      ],
      "duration": 16.2
    }
  ]
}