Skip to content

Logging

Julian Pömp edited this page Sep 25, 2017 · 1 revision

If you want to analyze user interactions you need to enable logging in the projectconfig.json. After a user finished a transcription the user can export the protocol file with the "export" function.

The protocol schema:

{
  "properties": {
    "version": {
      "type": "string"
    },
    "encoding": {
      "type": "string"
    },
    "projectname": {
      "type": "string"
    },
    "logs": {
      "items": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "integer"
          },
          "type": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "integer",
              "object"
            ]
          },
          "playerpos": {
            "type": "integer"
          },
          "caretpos": {
            "type": "integer"
          }
        }
      },
      "type": "array"
    },
    "additionalProperties": false
  }
}

Example:

{
  "version": "1.0",
  "encoding": "UTF-8",
  "projectname": "local",
  "lastupdate": "Mon, 25 Sep 2017 18:44:54 GMT",
  "duration": 282432,
  "samplerate": 48000,
  "audiofile": "Untitled.ogg",
  "logs": [
    {
      "timestamp": 1505902061106,
      "type": "shortcut",
      "value": "boundary:add",
      "playerpos": 0,
      "caretpos": -1
    },
    {
      "timestamp": 1505902069330,
      "type": "shortcut",
      "value": "segment:set_break",
      "playerpos": 0,
      "caretpos": -1
    },
    {
      "timestamp": 1505902070994,
      "type": "shortcut",
      "value": "segment:set_break",
      "playerpos": 0,
      "caretpos": -1
    },
    {
      "timestamp": 1505902081079,
      "type": "shortcut",
      "value": "audio:play_pause",
      "playerpos": 0,
      "caretpos": 0
    },
    {
      "timestamp": 1505902081080,
      "type": "audio",
      "value": "started",
      "playerpos": 0,
      "caretpos": -1
    },
    {
      "timestamp": 1505902081894,
      "type": "shortcut",
      "value": "audio:play_pause",
      "playerpos": 38736,
      "caretpos": 0
    },
    {
      "timestamp": 1505902081909,
      "type": "audio",
      "value": "paused",
      "playerpos": 38736,
      "caretpos": -1
    },
    {
      "timestamp": 1506365090377,
      "type": "editor",
      "value": "changed"
    }
  ]
}

Protocol attrbutes:

  • version: "1.0"
  • encoding: Encoding of this file (e.g. "UTF-8")
  • projectname: Project name
  • lastupdate: Timestamp (e.g. "Mon, 25 Sep 2017 18:44:54 GMT")
  • duration: Duration of the audio file in samples (e.g. 282432),
  • samplerate: Sample rate (e.g. 48000)
  • audiofile: Name of the audio file
  • logs: Array of events. You can find more information in the next section.

Events

Each event is defined as followed:

{
      "timestamp": <Unix timestamp>,
      "type": "shortcut|audio|editor|mouseclick|level",
      "value": <string|number|JSON>,
      "playerpos": <position of play cursor in samples>,
      "caretpos": <caret position in the annotation text>
}

There are different types of events:

  • shortcut
  • audio
  • editor
  • mouseclick
  • level