{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Annotation (`pyannote.core.annotation.Annotation`)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "from pyannote.core import Annotation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "**`Annotation`** instances are used to describe sets of annotated temporal fragments. \n", "For instance, one can use an **`Annotation`** to store the result of speaker identification approach applied on an episode of *The Big Bang Theory* TV series." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [], "source": [ "annotation = Annotation(\n", " uri='TheBigBangTheory.Season01.Episode01', \n", " modality='speaker'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For instance, to represent a dialogue between Penny and Leonard, we could do the following:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pyannote.core import Segment\n", "annotation[Segment(3, 5)] = 'Penny'\n", "annotation[Segment(5.5, 7)] = 'Leonard'\n", "annotation[Segment(8, 10)] = 'Penny'\n", "annotation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, suppose (super-annoying) Sheldon speaks over Penny's second speech turn." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation[Segment(8, 10)] = 'Sheldon'\n", "annotation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Damn, Sheldon! That's not what we wanted! We did not want to replace Penny by Sheldon. Instead, we wanted to show that both characters are speaking at the very same time. \n", "To achieve this, we need to create a new track for the same segment." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "segment = Segment(8, 10)\n", "annotation[segment, annotation.new_track(segment)] = 'Penny'\n", "annotation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's much better!\n", "A track cannot be identified by a segment alone: it is uniquely identified by a 2-tuple (segment, track_identifier)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In fact, the **new_track** method is simply an helper function to help you generate new track identifiers for a given segment.\n", "And the previous lines are in fact shortcuts for the following:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation = Annotation(\n", " uri='TheBigBangTheory.Season01.Episode01', \n", " modality='speaker'\n", ")\n", "annotation[Segment(3, 5), '_'] = 'Penny'\n", "annotation[Segment(5.5, 7), '_',] = 'Leonard'\n", "annotation[Segment(8, 10), '_'] = 'Penny'\n", "annotation[Segment(8, 10), 'anything'] = 'Sheldon'\n", "annotation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`_` is the default track identifier (in case you are sure that each segment has only one associated track). Generally, you should avoid using the shortcut `annotation[segment]` and always add a track identifier of your choosing. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Iterating over segments, tracks and/or labels" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 00:00:03.000 --> 00:00:05.000]\n", "[ 00:00:05.500 --> 00:00:07.000]\n", "[ 00:00:08.000 --> 00:00:10.000]\n" ] } ], "source": [ "for segment in annotation.itersegments():\n", " print(segment)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 00:00:03.000 --> 00:00:05.000] _\n", "[ 00:00:05.500 --> 00:00:07.000] _\n", "[ 00:00:08.000 --> 00:00:10.000] _\n", "[ 00:00:08.000 --> 00:00:10.000] anything\n" ] } ], "source": [ "for segment, track in annotation.itertracks():\n", " print(segment, track)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 00:00:03.000 --> 00:00:05.000] _ Penny\n", "[ 00:00:05.500 --> 00:00:07.000] _ Leonard\n", "[ 00:00:08.000 --> 00:00:10.000] _ Penny\n", "[ 00:00:08.000 --> 00:00:10.000] anything Sheldon\n" ] } ], "source": [ "for segment, track, label in annotation.itertracks(yield_label=True):\n", " print(segment, track, label)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with segments" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can use the **get_timeline** method to obtain a [timeline](pyannote.core.timeline.ipynb) made of all segments (not tracks!) in the annotation" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHMAAABjCAYAAAAYTEz/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAACKtJREFUeJzt3VmsreccBvDn3xxTNcRYxJCKkJKUVtOKGg6KGGKKmGIW\nJITGhQQXuq+EC8SFGyFNSbkoioREDTkRLmqqmtvQ0BraEqpoUrR/F/srRXSvfYb95j3f75fsrLVX\nvrXOc3be/a69n/2+31fdHQAAAADmcMzoAAAAAABsTpkDAAAAMBFlDgAAAMBElDkAAAAAE1HmAAAA\nAExEmQMAAAAwkX2bHlhVrmEOAAAAcJh1d+3m+I3LnOXFd5cGDpOtra1sbW2NjsEKGXuMZPwxirHH\nSMYfoxh7jFK1qx4niW1WAAAAAFNR5gAAAABMRJnDFPbv3z86Aitl7DGS8ccoxh4jGX+MYuwxk9r0\nPDhV1c6ZAwAAAHD4VNWuT4BsZQ4AAADARJQ5AAAAABNR5gAAAABMRJkDAAAAMBFlDgAAAMBElDkA\nAAAAE1HmAAAAAExEmQMAAAAwEWUOAAAAwESUOQAAAAATUeYAAAAATESZAwAAADARZQ4AAADARJQ5\nAAAAABNR5gAAAABMRJkDAAAAMBFlDgAAAMBElDkAAAAAE1HmAAAAAExEmQNwK7a2tkZHmJqvH8zJ\n9y4jGX8AO6vu3uzAqt70WICjRVXF3HfwfP1gTr53Gcn4A9ZmmfdqN8+xMgcAAABgIvt2c3DVrooi\nAPDeAcCuee8AuHW7KnMsdwTWxg+Th857B8zH3Mdo3juANTmY913brAAAAAAmoswBuBVnn3326AhT\n8/WDOfneZSTjD2BnrmYFAAAAMIirWQEAAAAc5ZQ5AAAAABNR5gAAAABMRJkDAAAAMBFlDgAAAMBE\nlDkAAAAAE1HmAAAAAExEmQMAAAAwEWUOAAAAwESUOQAAAAATUeYAAAAATESZAwAAADARZQ4AAADA\nRJQ5AAAAABNR5gAAAABMRJkDAAAAMBFlDgAAAMBElDkAAAAAE1HmAAAAAExEmcMUDhw4MDoCK2Xs\nMZLxxyjGHiMZf4xi7DETZQ5TMLEyirHHSMYfoxh7jGT8MYqxx0yUOQAAAAATUeYAAAAATKS6e7MD\nqzY7EAAAAICNdXft5viNyxwAAAAAxrPNCgAAAGAiyhwAAACAiexY5lTV7arqoqq6uKp+VFXv2otg\ncLOqOqaqvltVnxudhXWpql9U1SXL/PfN0XlYj6q6c1WdX1U/Wd57Tx+diXWoqgcvc953l9s/VdWb\nR+diHarq7cuc9/2qOq+qbjs6E+tQVWdV1Q+WD3MeR1RVfaSqrq6q79/isbtU1YVVdWlVfbGq7rzT\n6+xY5nT3DUme0N0nJzkpyROr6oxDSg+7c1aSH48OwSrdlGR/d5/c3aeNDsOqfCDJF7r7xCQPT/KT\nwXlYie6+bJnzTknyyCR/TXLB4FisQFU9IMlrk5zc3Scl2ZfkRWNTsQZV9bAkr0lyapJHJHlmVT1w\nbCqOcuckeep/Pfa2JF/u7ock+WqSt+/0Ihtts+ru65e7t1ue88fNc8LBq6r7Jnl6kg+PzsIqVWxH\nZY9V1Z2SPLa7z0mS7v5Hd183OBbrdGaSn3f3laODsArXJflbkjtW1b4kxyb5zdhIrMSJSS7q7hu6\n+8YkX0vyvMGZOIp199fzv53Ks5Ocu9w/N8lzdnqdjX5JWba5XJzkqiQHutsqCfbK+5O8NYnLrjFC\nJ/lSVX2rql47OgyrcUKS31fVOctWlw9V1R1Gh2KVXpjkE6NDsA7d/cck701yRZJfJ7m2u788NhUr\n8cMkj122uRyb7T8k329wJtbnnt19dZJ091VJ7rnTEzZdmXPTss3qvkkeV1WPP6SYsIGqekaSq7v7\ne9leIVGDI7E+ZyxbDZ6e5I1V9ZjRgViFfUlOSfLBZfxdn+2lt7Bnquo2SZ6V5PzRWViHZVvLW5I8\nIMl9khxXVS8Zm4o16O6fJnlPki8l+UKSi5PcODQUbLCYYVfbB5Zl3p/P9n5CONLOSPKsqro8238Z\nfEJVfXRwJlaku3+73P4u2+eMcN4c9sKvklzZ3d9ePv9ktssd2EtPS/KdZf6DvXBqkm909x+WrS6f\nTvLowZlYie4+p7tP7e79Sa5NctngSKzP1VV1fJJU1b2SXLPTEza5mtXdbz6T8rLM+8lJvneIQWFH\n3f2O7r5/dz8w2yfA+2p3v3x0Ltahqo6tquOW+3dM8pRsL8OFI2pZYntlVT14eehJcRJ49t6LY4sV\ne+vSJI+qqttXVWV77nPyd/ZEVd1jub1/kucm+fjYRKzAf+88+VySVy73X5Hkszu9wL4N/pF7Jzl3\nmVSPSfKx7v7K7nICTOf4JBdUVWd7rjyvuy8cnIn1eHOS85atLpcnedXgPKzIcs6IM5O8bnQW1qO7\nL1lWYH8n21tcLk7yobGpWJFPVdVdk/w9yRtceIAjqao+nmR/krtV1RVJzk7y7iTnV9Wrk/wyyQt2\nfJ1u55UFAAAAmIVL7gIAAABMRJkDAAAAMBFlDgAAAMBElDkAAAAAE1HmAAAAAExEmQMAAAAwkX2j\nAwAA7KSq7prkK0k6yb2T3JjkmiSV5K/d/ZiB8QAA9lR19+gMAAAbq6p3JvlLd79vdBYAgBFsswIA\nZlP/8UnVn5fbx1fVgar6TFX9rKreXVUvrapvVtUlVXXCctzdq+qTVXXR8vHoEf8JAICDpcwBAGZ3\ny2XGJyV5XZKHJnlZkgd192lJPpLkTcsxH0jyvu4+Pcnzk3x4D7MCABwy58wBAI4m3+rua5Kkqn6W\n5IvL4z9Isn+5f2aSE6vq5hU+x1XVsd19/Z4mBQA4SMocAOBocsMt7t90i89vyr9/7qkkp3f33/cy\nGADA4WKbFQAwu9r5kP9wYZKz/vXkqocf3jgAAEeWMgcAmN3/uzTn/3v8rCSnLidF/mGS1x+ZWAAA\nR4ZLkwMAAABMxMocAAAAgIkocwAAAAAmoswBAAAAmIgyBwAAAGAiyhwAAACAiShzAAAAACaizAEA\nAACYiDIHAAAAYCL/BBkl8uk1EEtwAAAAAElFTkSuQmCC\n", "text/plain": [ ", , ])>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.get_timeline()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with tracks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get all tracks for a given segment" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "{'_', 'anything'}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.get_tracks(Segment(8, 10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check whether a given track exists" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.has_track(Segment(8, 10), '---')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One can re-initialize tracks as incrementing integer using **retrack** method. This also makes sure that no two tracks have the same identifier." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 00:00:03.000 --> 00:00:05.000] 0\n", "[ 00:00:05.500 --> 00:00:07.000] 1\n", "[ 00:00:08.000 --> 00:00:10.000] 2\n", "[ 00:00:08.000 --> 00:00:10.000] 3\n" ] } ], "source": [ "for segment, track in annotation.rename_tracks(generator='int').itertracks():\n", " print(segment, track)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with labels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get (sorted) list of unique labels" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "['Leonard', 'Penny', 'Sheldon']" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.labels()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "List of labels for a given segment. Read the help message for more options." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "{'Penny', 'Sheldon'}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.get_labels(Segment(8, 10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One may want to be more precise on the identiy of each speaker and replace character names by actor names. We can use **translate** to do just that:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHMAAACxCAYAAABHuvHbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFWVJREFUeJzt3XuUZWV5J+Dfi21UQA1qjKDCqBkjOsEYiTc0IuANb0RN\nogZvyRIzOtFlxmQ0yxjCTIyujGQ5UdcM0TDgNV6BqKN4Y6KTiEoQ0GjwgoqoIApixCB2v/PH3h2L\nspqu6q6u3bvP86xVq85l76/ec853dvf+ne/7TnV3AAAAAJiHvaYuAAAAAIDVE+YAAAAAzIgwBwAA\nAGBGhDkAAAAAMyLMAQAAAJgRYQ4AAADAjAhzAAAAAGZEmAMAAAAwI8IcAAAAgBkR5gAAAADMiDAH\nAAAAYEb2uDCnqu5fVZ+dug52T1W1paruOHUdO6uqnlpVH9nJNg4an4+fOA5U1e2r6qqqqp35G4uk\nqk6uqhOmrgMAANjz7TFhTlV9uKp+q7s/2t0Hr1ObD6yqzeNJ7Xer6rNV9bT1aJv1tfX1X8WmvcuL\nWYWqumFVvbiqPldV36uqi6vq3VX14DU0sx6PZcU2uvvi7r5Zd+8Wz9dGqaqLquqIJdefUFXfqaoH\nTFzXk6rqE2NfuWTsK4dNWRMAADCdPSbM2YUuGU9qb57kBUn+qqrustZGVhr9wCR2l5Emb0/yqCTH\nJtkvyR2SvCLJ0VMWxY9V1VOT/GWSh3f3To2C2sk6fi/JiUn+W5JbJzkwyasy9B8AAGAB7XEBwzia\n5uIl1y+qqudX1fnjCJvXVNWtq+o942ibM6vq5qtpu7tPT3JFkruObb+lqr5RVVdU1VlVddclf/fk\nqnr1+An695IcXlUPr6rPjHVcPJ6kbd3+GVX1+aq6vKpOq6r9l9y3paqeWVUXjqMEXrnkvjuNf/vK\nqrqsqt60U0/gHuD6nsvRg7fxXD61qj5SVX8+3vfFqnrYkvs/XFUnVNVHx9fwvVV1i/G+d1XVs5fV\ncV5VPWaF+o5KcmSSR3f3J7v7R+PPmd39vCXb/Zeq+sL4tz5dVcdcz2O+y9iXvz2OIPu1JffduKpe\nXlVfHvvq31XVjVZo43FV9aWquuv1TcFaBFX1zCR/nuQh3X32ktu3+Z5foY1HVtW547YfrapfGG9/\nflW9bdm2/6Oq/mKFNm6W5E+SPKu7T+/uH3T35u5+T3e/YNzmOtO7VjgG3mXsu1dU1QVV9agl922z\n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\n", "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mapping = {'Penny': 'Kaley Cuoco', 'Sheldon': 'Jim Parsons', 'Leonard': 'Johnny Galecki'}\n", "annotation.rename_labels(mapping=mapping)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHMAAACxCAYAAABHuvHbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFWVJREFUeJzt3XuUZWV5J+Dfi21UQA1qjKDCqBkjOsEYiTc0IuANb0RN\nogZvyRIzOtFlxmQ0yxjCTIyujGQ5UdcM0TDgNV6BqKN4Y6KTiEoQ0GjwgoqoIApixCB2v/PH3h2L\nspqu6q6u3bvP86xVq85l76/ec853dvf+ne/7TnV3AAAAAJiHvaYuAAAAAIDVE+YAAAAAzIgwBwAA\nAGBGhDkAAAAAMyLMAQAAAJgRYQ4AAADAjAhzAAAAAGZEmAMAAAAwI8IcAAAAgBkR5gAAAADMiDAH\nAAAAYEb2uDCnqu5fVZ+dug52T1W1paruOHUdO6uqnlpVH9nJNg4an4+fOA5U1e2r6qqqqp35G4uk\nqk6uqhOmrgMAANjz7TFhTlV9uKp+q7s/2t0Hr1ObD6yqzeNJ7Xer6rNV9bT1aJv1tfX1X8WmvcuL\nWYWqumFVvbiqPldV36uqi6vq3VX14DU0sx6PZcU2uvvi7r5Zd+8Wz9dGqaqLquqIJdefUFXfqaoH\nTFzXk6rqE2NfuWTsK4dNWRMAADCdPSbM2YUuGU9qb57kBUn+qqrustZGVhr9wCR2l5Emb0/yqCTH\nJtkvyR2SvCLJ0VMWxY9V1VOT/GWSh3f3To2C2sk6fi/JiUn+W5JbJzkwyasy9B8AAGAB7XEBwzia\n5uIl1y+qqudX1fnjCJvXVNWtq+o942ibM6vq5qtpu7tPT3JFkruObb+lqr5RVVdU1VlVddclf/fk\nqnr1+An695IcXlUPr6rPjHVcPJ6kbd3+GVX1+aq6vKpOq6r9l9y3paqeWVUXjqMEXrnkvjuNf/vK\nqrqsqt60U0/gHuD6nsvRg7fxXD61qj5SVX8+3vfFqnrYkvs/XFUnVNVHx9fwvVV1i/G+d1XVs5fV\ncV5VPWaF+o5KcmSSR3f3J7v7R+PPmd39vCXb/Zeq+sL4tz5dVcdcz2O+y9iXvz2OIPu1JffduKpe\nXlVfHvvq31XVjVZo43FV9aWquuv1TcFaBFX1zCR/nuQh3X32ktu3+Z5foY1HVtW547YfrapfGG9/\nflW9bdm2/6Oq/mKFNm6W5E+SPKu7T+/uH3T35u5+T3e/YNzmOtO7VjgG3mXsu1dU1QVV9agl922z\nb1TVo8d+952q+tCOhNgAAMCusWm9Gtqy+dB1m46x1w0+ubOjJ5bX8tgkRyS5YZJPJblHkqcn+VyS\n/5PkOUn+6/U1WFWV5JgkN09ywXjze5I8Lcm1SV6W5A1j21s9McOn+h8bT5AuSvL47v77MUC6w9j2\nEUlekuSoJP+U5OVJ3pzkgUvaekSSeyb56STnVNUZ3X3mWPf7uvvwqvqpJIdu78lZdyfstX5TcV68\nZade+6p6UHb8uUySeyU5OcktkzwzyWuT3HbJvk9M8rAkX0vy3iTPT/KHSU5J8p8zjJhIVd09yQFJ\n3r1CmUcmObu7v7Gdh/OFJId196VjOPP6qrpTd1+67DHvneTMJC9K8tAkhyT5QFVd0N2fG5+Dg5Pc\nJ8mlSe6dZMuyNp6e5IVJjuzui6rqoEwwJe2kY05dt7953GlP2dG+9KwkhyU5ors/vey+7b3nkyRV\ndY8MfecRSc7JMALrjKq6c5LXJ/njqrpZd19VVTdI8hsZXrvl7pvkRklOW+Nj6LGOTUn+Nslrkjw4\nyQOSnF5V9+zuz2cbfWOs841JHp3k/yb5vSR/W1UHd/eP1lgLAACwzhblU/e/7O7Lx5PnjyT5WHef\n390/TPLOrHAytsRtq+o7Sb6V5I+SHDueBKW7/3d3X93d1yY5Icndq+qmS/Y9vbs/Nm57TZIfJrlb\nVd20u7/b3Z8at3tSktd293ljWy9Mct+qOnBJW3/W3d/r7ouTfDjJL463X5vkoKq6bXf/sLv/fkef\npD3Eb2bHn8sk+Up3//W4VswpSfavqlsvuf/k7v7i+Hq+Zcm+ZyT591V1p/H6sUn+ZhsnvrdK8s2t\nV6pqv3FUxJVV9YOtt3f327cGN9391iSfzxA2LffIJBd196k9OC/DNK5fG0PIpyd5Tnd/c7z/Y+Nz\nkwzTzp6XIYh6YHdftEL7i+aoDMeI5UHOat7zWz0jyf8cR151d78uyTVJ7tPd38xwHNo6eurhSb61\n5Hiw1C2TXN7dW1a4bzXum2Sf7n7ZOPrrw0neleSJ2+kbv57kXd39oe7enOS/J7lJkvvtYB0AAMA6\nWreROeswmmZXWjqS4QcrXN/3eva9pLsPXH7jOP3kJUken+HkvMefWyX53rjZxct2e1yGQOhlVXVe\nkheMUzgOyPDpfZKku79fVd/OMCLkqys8hquX1Pz7GdbS+PgYOp3Y3Sdfz+NZfzs5mmad7cxzmSwJ\nWbr7B8P5bvZNctny+5fu293XVNVbkhw7Tnl5YobXeyXfTvJzS/7OFUn2G4OgC7feXlVPyRC0/Lvx\npn0y9K/lDkpyn/H1T4aA5gZJTh23v3GSL22jlmQYXXTCKkYK7XI7MZpmPf3HJC+qqtd2929vvXGV\n7/mtDkrylKr63a27ZxgZeMB4/dT8eOTXbyZ53TZq+XaSW1XVXjsY6OyfnzwOfSXD++H6+sYB43ZJ\nku7ucerWbVfYFgAA2GCLMjJnV3hShgVIj+jun85wwl257gK715ky0t3ndPcxSX4myelJ3jre9fUM\nJ39JkqraJ8Mn8l/bXhHdfVl3H9fdt03yO0leXXvAV2/vhEuyg8/lOjg1w4icI5N8f+laK8t8MMkv\nV9UB27g/40iikzKslbJfd++X5DNZeQHni5Oc1d23GH/2Gxft/k9JLs8QWN5phf2SoY8+JMkfVdVj\nV/EYF8GlGV7DB1TVq5fcvpr3/FYXJ/nTZa/Jvt39N+P9pyU5pKrulmFk1Ru2Ucs/ZBjRs831kpJ8\nP8neS64vXSPq60luv2z7AzO8Ty5P8q9ZuW9c55g0uv24HwAAMLE9NczZiE/3b5rhJOuKMTD4s1zP\nGiM1fBX1k8Z1MjZn+CR/83j3m5I8vaoOGdfWeUmGaR7LP1Ffqd3HV9XWT8uvzLAWyo5OydgTvDk7\n+FzurO7+hwx94OXZ9kiLdPf7M0zvOq2q7jX2jU0ZpsRstU+G1/HyqtprXNPmP2yjyXcluXNVHVtV\nm8b2Dq2qnx+ni52c5MSq2n9s6z5VdcNx38oQEj0sySuXLo6b3eebvzbcOBXqyCQPraoTx5vX8p7/\nqyS/U1X3SoZQsaqOHvdLd/9rkndkWJfm7O5eMWzs7quS/HGSV1XVY6rqJuNr/LCqeum42aeSHD1O\n17tNkucuaeLsJFdX1R+M+x2eITx609g3/jor9423JHlEVT1o3O/5GYKfRZ/GCQAAu4U9LczpZb+X\nX17p+o46NcO0nUuSfDqrO8l5cpKLqurKJMdl+KQ/3f3BDNOv3jG2d4ckT1hlzb+c5OyquirDp/3P\n6e4vr+mR7Dl6J5/LFdtc476nZghdXr+d7X41Qwjz+gzfkPalDFOzHpIk3f3ZDKHQxzJM7bpbko+u\nWGD3v4z7PSHDiIqvJ3lphoVzk2Ea1QVJPpFh2s5L8+P3fo9tnJ9h1MlJVfXQpfctmH97zGMAeGSS\nx1XVn2ZYQ2lV7/nuPifDujmvHKe/XZjkqcs2OyXJL2ToM9suqPvEDAsQvyjDdL+vJnl2frwo8uuS\nnJ/kyxkW5X7zkn2vzfC6Hp1hJM4rkzx567pfGdZK+om+0d0XZhhl9soM64U9IsmjtrEGFAAAsMFq\n+HB2/qrqnCR/0t1nTF0LG293ef2r6tgkx3X3r0xZB7u/qrpdhm/Uu80YyAEAAKzKHjEyZ1x34i5J\nzp26Fjbe7vL6j18R/uwk/2vKOtj9jYspPz/JmwU5AADAWs0+zBnXjXhvkj/YiHVR2L3sLq9/VT0k\nwxSYb2RYAwlWNIZ+301yRIb1cAAAANZkj5lmBQAAALAIZj8yBwAAAGCRCHMAAAAAZkSYAwAAADAj\nm1a7YVVZXAcAAABgnXV3rWX7VYc5Y+NrqwbWyfHHH5/jjz9+6jJYQPoeU9L/mIq+x5T0P6ai7zGV\nqjXlOElMswIAAACYFWEOAAAAwIwIc5iFww8/fOoSWFD6HlPS/5iKvseU9D+mou8xJ7XadXCqqq2Z\nAwAAALB+qmrNCyAbmQMAAAAwI8IcAAAAgBkR5gAAAADMiDAHAAAAYEaEOQAAAAAzIswBAAAAmBFh\nDgAAAMCMCHMAAAAAZkSYAwAAADAjwhwAAACAGRHmAAAAAMyIMAcAAABgRoQ5AAAAADMizAEAAACY\nEWEOAAAAwIwIcwAAAABmRJgDAAAAMCPCHAAAAIAZEeYAAAAAzIgwBwAAAGBGhDkAAAAAMyLMAQAA\nAJgRYQ4AAADAjAhzAAAAAGZEmAMAAAAwI8IcAAAAgBkR5gBsw0nHnJqTjjl16jLm64S9hh9gXrx3\nmZB/e4FFs6PHPP9SAwAAAMyIMAcAAABgRoQ5AAAAADOyaS0bm78KwJpZewOANXLeAXD9/A8bAAAA\nYEbWNDLnuNOesqvqANjt+FRwnbx4y9QVAGthNB27AecdwKLwbVYAAAAAC0CYAwAAADAjwhwAAACA\nGRHmAAAAAMxIdffqNqzq1W4LAAAAwPZVVbq71rKPkTkAAAAAMyLMAQAAAJgRYQ4AAADAjAhzAAAA\nAGZEmAMAAAAwI8IcAAAAgBkR5gAAAADMiDAHAAAAYEaEOQAAAAAzIswBAAAAmBFhDgAAAMCMCHMA\nAAAAZkSYAwAAADAjwhwAAACAGRHmAAAAAMyIMAcAAABgRoQ5AAAAADMizAEAAACYEWEOAAAAwIwI\ncwAAAABmRJgDAAAAMCPCHAAAAIAZEeYAAAAAzIgwBwAAAGBGhDkAAAAAMyLMAQAAdgtbNh+aLZsP\nnboMgA2zo8c8YQ4AAADAjAhzAAAAAGZEmAMAAAAwI8IcAAAAgBnZNHUBAAAAS1kEGeD6GZkDAAAA\nMCNG5gAAALuVvW7wyalLANgQvpocAAAAYAEIcwAAAABmRJgDAAAAMCPV3avbsKpXuy0AAAAA21dV\n6e5ayz5G5gAAAADMiDAHAAAAYEaEOQAAAAAzIswBAAAAmBFhDgAAAMCMCHMAAAAAZkSYAwAAADAj\nwhwAAACAGRHmAAAAAMyIMAcAAABgRoQ5AAAAADMizAEAAACYEWEOAAAAwIwIcwAAAABmRJgDAAAA\nMCPCHAAAAIAZEeYAAAAAzIgwBwAAAGBGhDkAAAAAMyLMAQAAAJgRYQ4AAADAjAhzAAAAAGZEmAMA\nAAAwI8IcAAAAgBkR5gAAAADMiDAHAAAAYEaEOQAAAAAzIsxhFs4666ypS2BB6XtMSf9jKvoeU9L/\nmIq+x5wIc5gFB1amou8xJf2Pqeh7TEn/Yyr6HnMizAEAAACYEWEOAAAAwIxUd69uw6rVbQgAAADA\nqnV3rWX7VYc5AAAAAEzPNCsAAACAGRHmAAAAAMzIdsOcqrpRVZ1dVedW1Weq6iUbURhsVVV7VdU/\nVtUZU9fCYqmqL1fVeePx7+NT18PiqKqbV9Vbq+qz47+99566JhZDVd15POb94/j7u1X1nKnrYjFU\n1QvHY975VfWGqvqpqWtiMVTVc6vqgvHHMY9dqqpeW1WXVtX5S27br6rOrKp/rqr3VdXNt9fOdsOc\n7r4myYO6+x5JDklyRFUdtlPVw9o8N8k/TV0EC2lLksO7+x7dfa+pi2GhvCLJe7r74CR3T/LZieth\nQXT3heMx75eS3DPJ95O8c+KyWABVdVCSZyS5R3cfkmRTkidMWxWLoKruluS3kxya5BeTPLKq7jht\nVezhTk7y0GW3vSDJB7r755N8KMkLt9fIqqZZdffV48Ubjftcsfo6YcdV1e2SHJ3kNVPXwkKqmI7K\nBquqmyV5QHefnCTd/aPuvmrislhMRyX5YndfPHUhLISrkvwwyT5VtSnJ3km+Pm1JLIiDk5zd3dd0\n9+Ykf5fksRPXxB6suz+an8xUHpPklPHyKUmO2V47qzpJGae5nJvkm0nO6m6jJNgof5Hk95P42jWm\n0EneX1WfqKpnTF0MC+MOSS6vqpPHqS4nVdVNpi6KhfQbSd40dREshu6+IsnLk3w1ySVJruzuD0xb\nFQvi00keME5z2TvDB8m3n7gmFs+tu/vSJOnubya59fZ2WO3InC3jNKvbJfmVqnrgTpUJq1BVj0hy\naXd/KsMIiZq4JBbPYeNUg6OTPLuq7j91QSyETUl+Kcmrxv53dYaht7BhquqGSR6d5K1T18JiGKe1\nPC/JQUkOSLJvVT1p2qpYBN39uSQvS/L+JO9Jcm6SzZMWBasYzLCm6QPjMO93Z5hPCLvaYUkeXVVf\nyvDJ4IOq6tSJa2KBdPc3xt/fyrBmhHVz2AhfS3Jxd39yvP62DOEObKSHJzlnPP7BRjg0yf/r7u+M\nU13ekeR+E9fEgujuk7v70O4+PMmVSS6cuCQWz6VV9bNJUlW3SXLZ9nZYzbdZ3WrrSsrjMO8HJ/nU\nThYK29Xdf9jdB3b3HTMsgPeh7n7K1HWxGKpq76rad7y8T5KHZBiGC7vUOMT24qq683jTkbEIPBvv\niTHFio31z0nuU1U3rqrKcOyz+Dsboqp+Zvx9YJJfTfLGaStiASyfeXJGkqeNl5+a5PTtNbBpFX9k\n/ySnjAfVvZK8rrs/uLY6AWbnZ5O8s6o6w7HyDd195sQ1sTiek+QN41SXLyV5+sT1sEDGNSOOSnLc\n1LWwOLr7vHEE9jkZpricm+Skaatigby9qm6R5Nokz/LFA+xKVfXGJIcnuWVVfTXJHyd5aZK3VtVv\nJflKkl/fbjvd1pUFAAAAmAtfuQsAAAAwI8IcAAAAgBkR5gAAAADMiDAHAAAAYEaEOQAAAAAzIswB\nAAAAmJFNUxcAALA9VXWLJB9M0kn2T7I5yWVJKsn3u/v+E5YHALChqrunrgEAYNWq6sVJ/qW7T5y6\nFgCAKZhmBQDMTV3nStX3xt8PrKqzquq0qvpCVb20qo6tqo9X1XlVdYdxu1tV1duq6uzx535TPAgA\ngB0lzAEA5m7pMONDkhyX5K5Jnpzk57r7Xklem+R3x21ekeTE7r53kscnec0G1goAsNOsmQMA7Ek+\n0d2XJUlVfSHJ+8bbL0hy+Hj5qCQHV9XWET77VtXe3X31hlYKALCDhDkAwJ7kmiWXtyy5viU//n9P\nJbl3d1+7kYUBAKwX06wAgLmr7W9yHWcmee6/7Vx19/UtBwBg1xLmAABzt62v5tzW7c9Ncui4KPKn\nkzxz15QFALBr+GpyAAAAgBkxMgcAAABgRoQ5AAAAADMizAEAAACYEWEOAAAAwIwIcwAAAABmRJgD\nAAAAMCPCHAAAAIAZEeYAAAAAzMj/B0/zA7lD9gfFAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this also used to work -- but no longer does\n", "annotation % mapping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cropping and subsetting" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **crop** method works the same way it does for [timeline](pyannote.core.timeline.ipynb) instances." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "segment = Segment(6, 9)\n", "segment" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nAAvy/wEUbxAIVIiWpgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "annotation.crop(segment)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The **subset** method allows to extract annotations based on their labels." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nAAAAwIr8P9mng5zUawClAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "male_characters = set(['Sheldon', 'Leonard'])\n", "annotation.subset(male_characters)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nMISrrrpq7hFYKMcec3L8MRfHHnNy/DEXxx4jEXMYghdW5uLYY06OP+bi2GNOjj/m4thjJGIOAAAA\nwEDEHAAAAICBVHevtmHVahsCAAAAsLLuro1sv3LMAQAAAGB+TrMCAAAAGIiYAwAAADCQdWNOVT2k\nqq6uqmuq6l+r6s+2YzA4pKqOqqqPV9Xlc8/CslTVl6rq2un17yNzz8NyVNXDquqyqvrs9G/vWXPP\nxDJU1eOn17yPT5//o6peNPdcLENVvWR6zftkVV1aVQ+eeyaWoaourKpPTR9e89hSVXVRVd1UVZ88\n7LHvraorqupzVfWeqnrYevtZN+Z09x1Jnt7dpyU5JclPVNXZRzQ9bMyFST4z9xAs0l1J9nb3ad19\n5tzDsCivTvKu7j45yalJPjvzPCxEd39+es07PcmPJrktydtmHosFqKrHJnlBktO6+5Qku5L86rxT\nsQRV9SNJfjvJGUmemORnq+qkeadih9uf5Kfv9dgfJnlfd/9Qkg8kecl6O1npNKvuvn26+ZDpOV9f\nfU544Krq0UnOSfK6uWdhkSpOR2WbVdUxSZ7S3fuTpLu/3d23zjwWy/SMJNd194G5B2ERbk3yP0ke\nWlW7kuxO8tV5R2IhTk5ydXff0d13Jvlgkl+YeSZ2sO7+UP5/Uzk3ycXT7YuT/Nx6+1npl5TpNJdr\nktyY5KrutkqC7fKqJH+QxNuuMYdO8t6q+mhVvWDuYViMxyX5WlXtn051eW1VfffcQ7FIv5LkTXMP\nwTJ099eTvCLJ9UkOJvlGd79v3qlYiE8necp0msvurP0h+cSZZ2J5ju/um5Kku29Mcvx6T1h1Zc5d\n02lWj07y1Kp62hGNCSuoqmcnuam7P5G1FRI180gsz9nTqQbnJLmgqp4890Aswq4kpyd5zXT83Z61\npbewbarqQUmek+SyuWdhGabTWl6c5LFJHpXk6Kr6tXmnYgm6+9+S/HmS9yZ5V5Jrktw561CwwmKG\nDZ0+MC3zfmfWzieErXZ2kudU1Rez9pfBp1fVJTPPxIJ09w3T53/P2jUjXDeH7fCVJAe6+1+m+2/J\nWtyB7fQzST42vf7BdjgjyYe7+5bpVJe/T/KkmWdiIbp7f3ef0d17k3wjyednHonluamqHpEkVfXI\nJDev94RV3s3q4YeupDwt8/6pJJ84wkFhXd390u5+THeflLUL4H2gu58391wsQ1Xtrqqjp9sPTfLM\nrC3DhS01LbE9UFWPnx76ybgIPNvvuXGKFdvrc0l+vKq+q6oqa699Lv7Otqiq75s+PybJzyd547wT\nsQD3PvPk8iS/Md1+fpJ/WG8Hu1b4JickuXh6UT0qyRu6+/0bmxNgOI9I8raq6qy9Vl7a3VfMPBPL\n8aIkl06nunwxyW/OPA8LMl0z4hlJzp97Fpaju6+dVmB/LGunuFyT5LXzTsWCvLWqjk3yrSS/440H\n2EpV9cYke5McV1XXJ/mTJC9PcllV/VaSLyf55XX30+26sgAAAACj8Ja7AAAAAAMRcwAAAAAGIuYA\nAAAADETMAQAAABiImAMAAAAwEDEHAAAAYCC75h4AAGA9VXVskvcn6SQnJLkzyc1JKslt3f3kGccD\nANhW1d1zzwAAsLKq+uMk/9Xdr5x7FgCAOTjNCgAYTd3jTtV/Tp+fVlVXVdXbq+oLVfXyqjqvqj5S\nVddW1eOm7R5eVW+pqqunjyfN8UMAADxQYg4AMLrDlxmfkuT8JD+c5NeT/EB3n5nkoiS/O23z6iSv\n7O6zkvxSktdt46wAAEfMNXMAgJ3ko919c5JU1ReSvGd6/FNJ9k63n5Hk5Ko6tMLn6Kra3d23b+uk\nAAAPkJgDAOwkdxx2+67D7t+V//t/TyU5q7u/tZ2DAQBsFqdZAQCjq/U3uYcrklx495OrTt3ccQAA\ntpaYAwCM7r7emvO+Hr8wyRnTRZE/neSFWzMWAMDW8NbkAAAAAAOxMgcAAABgIGIOAAAAwEDEHAAA\nAICBiDkAAAAAAxFzAAAAAAYi5gAAAAAMRMwBAAAAGIiYAwAAADCQ/wX2tWvQXLztyQAAAABJRU5E\nrkJggg==\n", "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# all but male characters\n", "annotation.subset(male_characters, invert=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analyzing annotations" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ ", ])>" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# timeline made of Penny's segments\n", "annotation.label_timeline('Penny')" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Penny spoke during 4.000000 seconds\n" ] } ], "source": [ "# total Penny's speech duration\n", "print 'Penny spoke during %f seconds' % annotation.label_duration('Penny')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "[('Penny', 4), ('Sheldon', 2), ('Leonard', 1.5)]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# label chart based on their duration\n", "annotation.chart()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/plain": [ "'Penny'" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# who is the biggest speaker?\n", "annotation.argmax()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Other operations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**co_iter** works the same way as for [timeline](pyannote.core.timeline.ipynb) except it iterates over overlapping (segment, track) tuples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Need help?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can always try the following... \n", "Who knows? It might give you the information you are looking for!" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on class Annotation in module pyannote.core.annotation:\n", "\n", "class Annotation(__builtin__.object)\n", " | Annotation\n", " | \n", " | Parameters\n", " | ----------\n", " | uri : string, optional\n", " | uniform resource identifier of annotated document\n", " | modality : string, optional\n", " | name of annotated modality\n", " | \n", " | Methods defined here:\n", " | \n", " | __bool__(self)\n", " | \n", " | __contains__(self, included)\n", " | Inclusion\n", " | \n", " | Use expression 'segment in annotation' or 'timeline in annotation'\n", " | \n", " | Parameters\n", " | ----------\n", " | included : `Segment` or `Timeline`\n", " | \n", " | Returns\n", " | -------\n", " | contains : bool\n", " | True if every segment in `included` exists in annotation\n", " | False otherwise\n", " | \n", " | __delitem__(self, key)\n", " | \n", " | __eq__(self, other)\n", " | \n", " | __getitem__(self, key)\n", " | # label = annotation[segment, track]\n", " | \n", " | __init__(self, uri=None, modality=None)\n", " | \n", " | __len__(self)\n", " | Number of segments\n", " | \n", " | __mod__(self, translation)\n", " | \n", " | __ne__(self, other)\n", " | \n", " | __nonzero__(self)\n", " | \n", " | __setitem__(self, key, label)\n", " | # annotation[segment, track] = label\n", " | \n", " | __str__(self)\n", " | Human-friendly representation\n", " | \n", " | anonymize_labels(self, generator=u'string')\n", " | Anonmyize labels\n", " | \n", " | Create a new annotation where labels are anonymized.\n", " | \n", " | Parameters\n", " | ----------\n", " | generator : {'string', 'int', iterator}, optional\n", " | \n", " | Returns\n", " | -------\n", " | anonymized : :class:`Annotation`\n", " | New annotation with anonymized labels.\n", " | \n", " | anonymize_tracks(self, generator=u'string')\n", " | Anonymize tracks\n", " | \n", " | Create a new annotation where each track has a unique label.\n", " | \n", " | Parameters\n", " | ----------\n", " | generator : {'string', 'int', iterator}, optional\n", " | Default to 'string'.\n", " | \n", " | Returns\n", " | -------\n", " | anonymized : `Annotation`\n", " | New annotation with anonymized tracks.\n", " | \n", " | argmax(self, segment=None, known_first=False)\n", " | Get most frequent label\n", " | \n", " | \n", " | Parameters\n", " | ----------\n", " | segment : Segment, optional\n", " | Section of annotation where to look for the most frequent label.\n", " | Defaults to whole annotation extent.\n", " | known_first: bool, optional\n", " | If True, artificially reduces the duration of intersection of\n", " | `Unknown` labels so that 'known' labels are returned first.\n", " | \n", " | Returns\n", " | -------\n", " | label : any existing label or None\n", " | Label with longest intersection\n", " | \n", " | Examples\n", " | --------\n", " | \n", " | >>> annotation = Annotation(modality='speaker')\n", " | >>> annotation[Segment(0, 10), 'speaker1'] = 'Alice'\n", " | >>> annotation[Segment(8, 20), 'speaker1'] = 'Bob'\n", " | >>> print \"%s is such a talker!\" % annotation.argmax()\n", " | Bob is such a talker!\n", " | >>> segment = Segment(22, 23)\n", " | >>> if not annotation.argmax(segment):\n", " | ... print \"No label intersecting %s\" % segment\n", " | No label intersection [22 --> 23]\n", " | \n", " | chart(self, percent=False)\n", " | Label chart based on their duration\n", " | \n", " | Parameters\n", " | ----------\n", " | percent : bool, optional\n", " | Return total duration percentage (rather than raw duration)\n", " | \n", " | Returns\n", " | -------\n", " | chart : (label, duration) iterable\n", " | Sorted from longest to shortest.\n", " | \n", " | co_iter(self, other)\n", " | Parameters\n", " | ----------\n", " | other : Annotation\n", " | \n", " | Generates\n", " | ---------\n", " | (segment, track), (other_segment, other_track)\n", " | \n", " | copy(self)\n", " | \n", " | crop(self, other, mode=u'intersection')\n", " | Crop annotation\n", " | \n", " | Parameters\n", " | ----------\n", " | other : `Segment` or `Timeline`\n", " | \n", " | mode : {'strict', 'loose', 'intersection'}\n", " | In 'strict' mode, only segments fully included in focus coverage\n", " | are kept. In 'loose' mode, any intersecting segment is kept\n", " | unchanged. In 'intersection' mode, only intersecting segments are\n", " | kept and replaced by their actual intersection with the focus.\n", " | \n", " | Returns\n", " | -------\n", " | cropped : Annotation\n", " | \n", " | Remarks\n", " | -------\n", " | In 'intersection' mode, the best is done to keep the track names\n", " | unchanged. However, in some cases where two original segments are\n", " | cropped into the same resulting segments, conflicting track names are\n", " | modified to make sure no track is lost.\n", " | \n", " | empty(self)\n", " | \n", " | for_json(self)\n", " | \n", " | get_labels(self, segment, unknown=True, unique=True)\n", " | Local set of labels\n", " | \n", " | Parameters\n", " | ----------\n", " | segment : Segment\n", " | Segments to get label from.\n", " | unknown : bool, optional\n", " | When False, do not return Unknown instances\n", " | When True, return any label (even Unknown instances)\n", " | unique : bool, optional\n", " | When False, return the list of (possibly repeated) labels.\n", " | When True (default), return the set of labels\n", " | Returns\n", " | -------\n", " | labels : set\n", " | Set of labels for `segment` if it exists, empty set otherwise.\n", " | \n", " | Examples\n", " | --------\n", " | \n", " | >>> annotation = Annotation()\n", " | >>> segment = Segment(0, 2)\n", " | >>> annotation[segment, 'speaker1'] = 'Bernard'\n", " | >>> annotation[segment, 'speaker2'] = 'John'\n", " | >>> print sorted(annotation.get_labels(segment))\n", " | set(['Bernard', 'John'])\n", " | >>> print annotation.get_labels(Segment(1, 2))\n", " | set([])\n", " | \n", " | get_timeline(self)\n", " | Get timeline made of annotated segments\n", " | \n", " | get_track_by_name(self, track)\n", " | Get all tracks with given name\n", " | \n", " | Parameters\n", " | ----------\n", " | track : any valid track name\n", " | Requested name track\n", " | \n", " | Returns\n", " | -------\n", " | tracks : list\n", " | List of (segment, track) tuples\n", " | \n", " | get_tracks(self, segment)\n", " | Set of tracks for query segment\n", " | \n", " | Parameters\n", " | ----------\n", " | segment : `Segment`\n", " | Query segment\n", " | \n", " | Returns\n", " | -------\n", " | tracks : set\n", " | Set of tracks for query segment\n", " | \n", " | has_track(self, segment, track)\n", " | Check whether a given track exists\n", " | \n", " | Parameters\n", " | ----------\n", " | segment : `Segment`\n", " | Query segment\n", " | track :\n", " | Query track\n", " | \n", " | Returns\n", " | -------\n", " | exists : bool\n", " | True if track exists for segment\n", " | \n", " | itersegments(self)\n", " | Segment iterator\n", " | \n", " | itertracks(self, label=False)\n", " | \n", " | label_coverage(self, label)\n", " | Parameters\n", " | ----------\n", " | label :\n", " | \n", " | Returns\n", " | -------\n", " | \n", " | label_duration(self, label)\n", " | \n", " | label_timeline(self, label)\n", " | Get timeline for a given label\n", " | \n", " | Parameters\n", " | ----------\n", " | label :\n", " | \n", " | Returns\n", " | -------\n", " | timeline : :class:`Timeline`\n", " | Timeline made of all segments annotated with `label`\n", " | \n", " | labels(self, unknown=True)\n", " | List of labels\n", " | \n", " | Parameters\n", " | ----------\n", " | unknown : bool, optional\n", " | When False, do not return Unknown instances\n", " | When True, return any label (even Unknown instances)\n", " | \n", " | Returns\n", " | -------\n", " | labels : list\n", " | Sorted list of labels\n", " | \n", " | new_track(self, segment, candidate=None, prefix=None)\n", " | Track name generator\n", " | \n", " | Parameters\n", " | ----------\n", " | segment : Segment\n", " | prefix : str, optional\n", " | candidate : any valid track name\n", " | \n", " | Returns\n", " | -------\n", " | track : str\n", " | New track name\n", " | \n", " | retrack(self)\n", " | \n", " | smooth(self, collar=0.0)\n", " | Smooth annotation\n", " | \n", " | Create new annotation where contiguous tracks with same label are\n", " | merged into one longer track.\n", " | \n", " | Parameters\n", " | ----------\n", " | collar : float\n", " | If collar is positive, also merge tracks separated by less than\n", " | collar duration.\n", " | \n", " | Returns\n", " | -------\n", " | annotation : Annotation\n", " | New annotation where contiguous tracks with same label are merged\n", " | into one long track.\n", " | \n", " | Remarks\n", " | -------\n", " | Track names are lost in the process.\n", " | \n", " | subset(self, labels, invert=False)\n", " | Annotation subset\n", " | \n", " | Extract annotation subset based on labels\n", " | \n", " | Parameters\n", " | ----------\n", " | labels : iterable\n", " | Label iterable.\n", " | invert : bool, optional\n", " | If invert is True, extract all but requested `labels`\n", " | \n", " | Returns\n", " | -------\n", " | subset : `Annotation`\n", " | Annotation subset.\n", " | \n", " | translate(self, translation)\n", " | Translate labels\n", " | \n", " | Parameters\n", " | ----------\n", " | translation: dict\n", " | Label translation.\n", " | Labels with no associated translation are kept unchanged.\n", " | \n", " | Returns\n", " | -------\n", " | translated : :class:`Annotation`\n", " | New annotation with translated labels.\n", " | \n", " | update(self, annotation)\n", " | Update existing annotations or create new ones\n", " | \n", " | Parameters\n", " | ----------\n", " | annotation : Annotation\n", " | Updated (or new) annotations\n", " | \n", " | Returns\n", " | -------\n", " | self : Annotation\n", " | Updated annotations.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Class methods defined here:\n", " | \n", " | from_df(cls, df, uri=None, modality=None) from __builtin__.type\n", " | Parameters\n", " | ----------\n", " | df : DataFrame\n", " | Must contain the following columns: 'segment', 'track' and 'label'\n", " | uri : str, optional\n", " | Resource identifier\n", " | modality : str, optional\n", " | Modality\n", " | \n", " | Returns\n", " | -------\n", " | \n", " | from_json(cls, data) from __builtin__.type\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", " | \n", " | uri\n", " | Resource identifier\n", "\n" ] } ], "source": [ "help(Annotation)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 4 }