通話録音とテープ起こし

概要

Vonage Voice APIでは、いくつかの方法で通話音声を録音することができます。以下の方法があります:

  1. 2人の通話をパッシブな「モニター」方式で録音する。
  2. プロンプトが表示されたときに、1人の発信者の音声を録音します。例えば、ボイスメールシステムの場合。
  3. 指定した会話の録音を有効にする会話アクションの使用).

デフォルトでは、すべての録音はモノラル形式で、会話のすべてのレッグが1つのチャンネルで録音されます。

また、Vonageは スプリット・レコーディング 機能では、オーディオはステレオファイルとして保存されます。この場合、最初の発信者が話した音声は左チャンネルになり、最初の発信者が聞いた音声は右チャンネルになります。これは、誰が何を言ったかを特定したい場合に、テープ起こしシステムに渡すと便利です。

会話を録音するには record アクションをNCCOに追加します。アクションの設定方法によって、録画の動作が異なります。録画の設定方法の詳細については NCCOリファレンス

一旦 record アクションが終了すると、Vonageはウェブフックを eventUrl を設定する際に指定した record アクションを実行します。このWebhookには、録画ファイルをダウンロードできるURLが含まれています。録画ファイルをダウンロードするには、録画を作成したのと同じアプリケーションキーで署名されたJWTで認証する必要があります。

電話転写 Vonageはウェブフックを eventUrl をクリックします。このWebhookには、テープ起こしにアクセスできるURLが含まれています。録音と同様に、認証が必要です。この機能は有料ですのでご注意ください。 Voice API価格 ページの「プログラマブル機能」の下にある。

注:録音が完了すると、Vonageによって30日間保存された後、自動的に削除されます。

同期録音

A record アクションが完了するのは endOnSilence タイマーに達したか endOnKey キーが送信されるか timeout の値に達する。この時点で録音は終了し、録音イベントがあなたの event_url 次のアクションが実行される前に。これは、ボイスメールに似たシナリオに使用される。

非同期レコーディング

もし endOnSilence, endOnKey または timeout が設定されている場合、録音は非同期で動作し、通話を録音しながら、即座に 次のアクションに進む。通話が終了したときのみ、録音は終了し、関連するイベントを送信する。これは、通話モニタリングと同様のシナリオに使用される。

指名された会話を録音する場合、録音は常に非同期で行われ、会議のライフサイクルに連動します。カンファレンスを録音するには record 属性を true あなたの conversation NCCOでの活動。

スプリット・レコーディング

通話を録音する際、スプリット録音を有効にすると、録音はステレオファイルとなり、1つのチャンネルには発信者から送られた音声が、もう1つのチャンネルには発信者が聞いた音声が録音されます。

マルチチャンネル録音

通話を録音する際、最大32の通話レグを別々に録音できるマルチチャンネル録音を有効にすることができます。設定されたチャンネル数のファイルが返されます。

この例では、3人の参加者を想定したマルチチャンネル録音を開始する (channels: 3)、さらに2つの Numbers を会話に接続します。録音では、各参加者がそれぞれのチャンネルで表示されます。

についての詳細は record アクションを参照してください。 NCCOリファレンス

[
  {
    "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"
      }
    ]
  }
]

を追加した場合 connect このNCCOのアクションでは、最初の2人の参加者 はそれぞれのチャンネルに表示され、3番目と4番目の参加者 は一緒にチャンネル3に表示されます。このシナリオでは、参加者それぞれにチャンネルを与えるために、チャンネル数を4まで増やす必要があります。1つの会話に最大32人まで参加できます。

ファイル形式

  • VonageはMP3、OGG、またはWAVフォーマットでの録音をサポートしており、デフォルトはMP3(または2チャンネル以上を録音する場合はWAV)です。
  • MP3ファイルは16ビット深度、16kHzのサンプルレートで録音されます。一定のビットレート32Kbpsでエンコードされます。
  • WAVファイルは16ビット深度、16kHzのサンプルレートで録音されます。

すべてのフォーマットはデフォルトでモノラルです。スプリット録音を有効にすると、前述のビット深度とサンプリングレートを使用した各チャンネルのステレオファイルが作成されます。

トランスクリプション

もし transcription オプションが設定されている場合、録音はデフォルトの languageen-US:

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

ご注意:音声通話の書き起こしには最大2時間の制限があります。

また、この機能は有料です。 Voice API価格 ページの「プログラマブル機能」の下にある。

トランスクリプションの設定を使用して、カスタムの eventUrl そして language をご利用ください。詳細は NCCOリファレンス.また、通話録音セグメントごとにセンチメント分析を実行することもできます。

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

テープ起こしが完了すると、録音にコールバックが送信されます。 eventUrl.録音 eventUrl が指定されていない場合、ウェブフックはアプリケーションの 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"
}

を使用している。 transcription_url を使用すると、

GET
リクエストでトランスクリプションを取得できます。録音を作成したのと同じアプリケーションキーで署名されたJWTで認証する必要があります。リクエストからの応答は transcription_url には、文章と、それぞれの信頼度とセンチメント分析スコアによる単語ごとの内訳が含まれます:

{
  "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
    }
  ]
}