{
  "id": 243301,
  "title": "68 place solution",
  "url": "/competitions/birdclef-2021/writeups/teyo-68-place-solution",
  "author_name": "",
  "post_date": "2021-06-02T01:02:44.888462900Z",
  "votes": 12,
  "comment_count": 7,
  "views": 0,
  "content": "<h1>[Interim] 68 place solution</h1>\n<p><a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/233454\" target=\"_blank\">It</a> said bagging works good in this competition.<br>\nWe thought so too from us experiment, so our strategy is training various model and they ensemble.</p>\n<p>Our final submission is voting by 5 models that three rexnet_200, densenet161, and resnest50d.</p>\n<h2>teyo  part</h2>\n<p>my aproach is cnn classifier model</p>\n<h3>Data Preparation</h3>\n<p>I cut out 5 seconds of audio from train short audio.<br>\nThe training data was converted to logmel using torchlibrosa, and then increased to 3 channels.<br>\nI used delta to increase channels, referring to past competitions. There was not much difference from simple repeat.</p>\n<p>Reference <a href=\"https://www.kaggle.com/vladimirsydor/4-th-place-solution-inference-and-training-tips\" target=\"_blank\">Cornell Birdcall Identification 4-th place solutinon</a></p>\n<h3>model</h3>\n<p>rexnet_200</p>\n<p>The rexnet 200 was unusually strong:)<br>\nI keep track of the f-1 for the train sound scape data and use the best f-1 weight.</p>\n<p>for ensemble [densenet161, efficientnetv2_s, resnext50_32x4]</p>\n<p>not worked efficientnetb0-4,resnest50d</p>\n<h3>data augmentation</h3>\n<ul>\n<li>NoiseInjection</li>\n<li>PinkNoise</li>\n<li>RandomVolume</li>\n<li>SpecAugmentation (do in model)</li>\n<li><a href=\"https://www.kaggle.com/c/birdsong-recognition/discussion/183199\" target=\"_blank\">Modified Mixup</a><ul>\n<li>increase 0.02 in public LB</li></ul></li>\n</ul>\n<h3>other settings</h3>\n<ul>\n<li>split<ul>\n<li>StratifiedKFold</li>\n<li>mainly 5 fold</li></ul></li>\n<li>Scheduler<ul>\n<li>CosineAnnealingWarmRestarts</li>\n<li>30 epochs</li>\n<li>lr=1e-4</li>\n<li>min_lr=1e-6</li></ul></li>\n<li>optimizer<ul>\n<li>Adam</li></ul></li>\n<li>criterion<ul>\n<li>BCEWithLogitsLoss</li></ul></li>\n</ul>\n<h2>shinmura part</h2>\n<p>I mainly developed post-processing (And <a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/239911\" target=\"_blank\">hand labeing</a>).  </p>\n<p>Our post-processing improved LB very well (<strong>LB 0.65 -&gt; 0.70</strong> jump up).  <br>\nOur post-processing is 7 ideas. But it's too long to write here.</p>\n<p>If you want to know our post-processing, please comment me.<br>\nThen I will build another thread.</p>\n<h2>toda part</h2>\n<p><strong>※ My model has not used in our team final submission, so this part is \"I try, but it was not working\".</strong></p>\n<p>I have used the ResNet18 based SED model.<br>\nMy ingenuity points are there three:</p>\n<h3>1. add background noise</h3>\n<p>In order to make the audio of the training data as close as possible to the test data, I used the data of ESC50 to add noise to the training data. The selected audio are listed below.</p>\n<p>airplane, rain, water_drops, crackling fire, engine, insects, crickets, frog, wind</p>\n<p>I also adjusted Gain to give variation to the volume of the bird's voice, but this did not work.</p>\n<h3>2. make model each site</h3>\n<p>Birds that are observed differ depending on the area, and it is expected that some birds, such as migratory birds, will be observed only for a specific period. I decided to make a specialized model.</p>\n<p>Specifically, the radius was within 1000 km from the observation point of the test data, and the period was narrowed down with a buffer of one month before and after the target period (for example, January to August for SSW).</p>\n<p>After narrowing down, we sorted by rating of each audio file and extracted the first 5 seconds of the top 300.</p>\n<p>The dataset is here: <a href=\"https://www.kaggle.com/takamichitoda/birdclef-ssw-max300\" target=\"_blank\">SSW</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-sne-max300\" target=\"_blank\">SNE</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-cor-max300\" target=\"_blank\">COR</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-col-max300\" target=\"_blank\">COL</a></p>\n<h3>3. generate nocall data</h3>\n<p>I add nocall data that made from other site.<br>\nThe method making nocall datasets is reversed the method making datasets each site.<br>\nI extracted audio that is more than 1000km away from each site and is not in the target period.</p>\n<p>nocall data is <a href=\"https://www.kaggle.com/takamichitoda/birdclef-nocall-each-site\" target=\"_blank\">here</a></p>",
  "messages": [
    {
      "id": "1332201",
      "postDate": "06/02/2021 01:02:44",
      "content": "<h1>[Interim] 68 place solution</h1>\n<p><a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/233454\" target=\"_blank\">It</a> said bagging works good in this competition.<br>\nWe thought so too from us experiment, so our strategy is training various model and they ensemble.</p>\n<p>Our final submission is voting by 5 models that three rexnet_200, densenet161, and resnest50d.</p>\n<h2>teyo  part</h2>\n<p>my aproach is cnn classifier model</p>\n<h3>Data Preparation</h3>\n<p>I cut out 5 seconds of audio from train short audio.<br>\nThe training data was converted to logmel using torchlibrosa, and then increased to 3 channels.<br>\nI used delta to increase channels, referring to past competitions. There was not much difference from simple repeat.</p>\n<p>Reference <a href=\"https://www.kaggle.com/vladimirsydor/4-th-place-solution-inference-and-training-tips\" target=\"_blank\">Cornell Birdcall Identification 4-th place solutinon</a></p>\n<h3>model</h3>\n<p>rexnet_200</p>\n<p>The rexnet 200 was unusually strong:)<br>\nI keep track of the f-1 for the train sound scape data and use the best f-1 weight.</p>\n<p>for ensemble [densenet161, efficientnetv2_s, resnext50_32x4]</p>\n<p>not worked efficientnetb0-4,resnest50d</p>\n<h3>data augmentation</h3>\n<ul>\n<li>NoiseInjection</li>\n<li>PinkNoise</li>\n<li>RandomVolume</li>\n<li>SpecAugmentation (do in model)</li>\n<li><a href=\"https://www.kaggle.com/c/birdsong-recognition/discussion/183199\" target=\"_blank\">Modified Mixup</a><ul>\n<li>increase 0.02 in public LB</li></ul></li>\n</ul>\n<h3>other settings</h3>\n<ul>\n<li>split<ul>\n<li>StratifiedKFold</li>\n<li>mainly 5 fold</li></ul></li>\n<li>Scheduler<ul>\n<li>CosineAnnealingWarmRestarts</li>\n<li>30 epochs</li>\n<li>lr=1e-4</li>\n<li>min_lr=1e-6</li></ul></li>\n<li>optimizer<ul>\n<li>Adam</li></ul></li>\n<li>criterion<ul>\n<li>BCEWithLogitsLoss</li></ul></li>\n</ul>\n<h2>shinmura part</h2>\n<p>I mainly developed post-processing (And <a href=\"https://www.kaggle.com/c/birdclef-2021/discussion/239911\" target=\"_blank\">hand labeing</a>).  </p>\n<p>Our post-processing improved LB very well (<strong>LB 0.65 -&gt; 0.70</strong> jump up).  <br>\nOur post-processing is 7 ideas. But it's too long to write here.</p>\n<p>If you want to know our post-processing, please comment me.<br>\nThen I will build another thread.</p>\n<h2>toda part</h2>\n<p><strong>※ My model has not used in our team final submission, so this part is \"I try, but it was not working\".</strong></p>\n<p>I have used the ResNet18 based SED model.<br>\nMy ingenuity points are there three:</p>\n<h3>1. add background noise</h3>\n<p>In order to make the audio of the training data as close as possible to the test data, I used the data of ESC50 to add noise to the training data. The selected audio are listed below.</p>\n<p>airplane, rain, water_drops, crackling fire, engine, insects, crickets, frog, wind</p>\n<p>I also adjusted Gain to give variation to the volume of the bird's voice, but this did not work.</p>\n<h3>2. make model each site</h3>\n<p>Birds that are observed differ depending on the area, and it is expected that some birds, such as migratory birds, will be observed only for a specific period. I decided to make a specialized model.</p>\n<p>Specifically, the radius was within 1000 km from the observation point of the test data, and the period was narrowed down with a buffer of one month before and after the target period (for example, January to August for SSW).</p>\n<p>After narrowing down, we sorted by rating of each audio file and extracted the first 5 seconds of the top 300.</p>\n<p>The dataset is here: <a href=\"https://www.kaggle.com/takamichitoda/birdclef-ssw-max300\" target=\"_blank\">SSW</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-sne-max300\" target=\"_blank\">SNE</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-cor-max300\" target=\"_blank\">COR</a>, <a href=\"https://www.kaggle.com/takamichitoda/birdclef-col-max300\" target=\"_blank\">COL</a></p>\n<h3>3. generate nocall data</h3>\n<p>I add nocall data that made from other site.<br>\nThe method making nocall datasets is reversed the method making datasets each site.<br>\nI extracted audio that is more than 1000km away from each site and is not in the target period.</p>\n<p>nocall data is <a href=\"https://www.kaggle.com/takamichitoda/birdclef-nocall-each-site\" target=\"_blank\">here</a></p>",
      "rawMarkdown": "# [Interim] 68 place solution\n\n[It](https://www.kaggle.com/c/birdclef-2021/discussion/233454) said bagging works good in this competition.\nWe thought so too from us experiment, so our strategy is training various model and they ensemble.\n\nOur final submission is voting by 5 models that three rexnet_200, densenet161, and resnest50d.\n\n\n## teyo  part\n\nmy aproach is cnn classifier model\n\n### Data Preparation\n\nI cut out 5 seconds of audio from train short audio.\nThe training data was converted to logmel using torchlibrosa, and then increased to 3 channels.\nI used delta to increase channels, referring to past competitions. There was not much difference from simple repeat.\n\nReference [Cornell Birdcall Identification 4-th place solutinon](https://www.kaggle.com/vladimirsydor/4-th-place-solution-inference-and-training-tips)\n\n### model\n\nrexnet_200\n\nThe rexnet 200 was unusually strong:)\nI keep track of the f-1 for the train sound scape data and use the best f-1 weight.\n\nfor ensemble [densenet161, efficientnetv2_s, resnext50_32x4]\n\nnot worked efficientnetb0-4,resnest50d\n\n### data augmentation\n\n+ NoiseInjection\n+ PinkNoise\n+ RandomVolume\n+ SpecAugmentation (do in model)\n+ [Modified Mixup](https://www.kaggle.com/c/birdsong-recognition/discussion/183199)\n  + increase 0.02 in public LB\n\n### other settings\n\n+ split\n  + StratifiedKFold\n    + mainly 5 fold\n+ Scheduler\n  + CosineAnnealingWarmRestarts\n  + 30 epochs\n  + lr=1e-4\n  + min_lr=1e-6\n+ optimizer\n  + Adam\n+ criterion\n  + BCEWithLogitsLoss\n\n## shinmura part\nI mainly developed post-processing (And [hand labeing](https://www.kaggle.com/c/birdclef-2021/discussion/239911)).  \n\nOur post-processing improved LB very well (**LB 0.65 -> 0.70** jump up).  \nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n\n## toda part\n\n**※ My model has not used in our team final submission, so this part is \"I try, but it was not working\".**\n\nI have used the ResNet18 based SED model.\nMy ingenuity points are there three:\n\n### 1. add background noise \n\nIn order to make the audio of the training data as close as possible to the test data, I used the data of ESC50 to add noise to the training data. The selected audio are listed below.\n\nairplane, rain, water_drops, crackling fire, engine, insects, crickets, frog, wind\n\nI also adjusted Gain to give variation to the volume of the bird's voice, but this did not work.\n\n### 2. make model each site\n\nBirds that are observed differ depending on the area, and it is expected that some birds, such as migratory birds, will be observed only for a specific period. I decided to make a specialized model.\n\nSpecifically, the radius was within 1000 km from the observation point of the test data, and the period was narrowed down with a buffer of one month before and after the target period (for example, January to August for SSW).\n\nAfter narrowing down, we sorted by rating of each audio file and extracted the first 5 seconds of the top 300.\n\nThe dataset is here: [SSW](https://www.kaggle.com/takamichitoda/birdclef-ssw-max300), [SNE](https://www.kaggle.com/takamichitoda/birdclef-sne-max300), [COR](https://www.kaggle.com/takamichitoda/birdclef-cor-max300), [COL](https://www.kaggle.com/takamichitoda/birdclef-col-max300)\n\n### 3. generate nocall data\n\nI add nocall data that made from other site.\nThe method making nocall datasets is reversed the method making datasets each site.\nI extracted audio that is more than 1000km away from each site and is not in the target period.\n\nnocall data is [here](https://www.kaggle.com/takamichitoda/birdclef-nocall-each-site)",
      "votes": null
    },
    {
      "id": "1332214",
      "postDate": "06/02/2021 01:36:45",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/takamichitoda\" target=\"_blank\">@takamichitoda</a> and team Overall a very good stable approach 👋 Keep it up!</p>",
      "rawMarkdown": "Congratulations @takamichitoda and team Overall a very good stable approach 👋 Keep it up!",
      "votes": null
    },
    {
      "id": "1332218",
      "postDate": "06/02/2021 01:41:27",
      "content": "<pre><code>Our post-processing improved LB very well (LB 0.65 -&gt; 0.70 jump up).\nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n</code></pre>\n<p>i definitely want to know about your post processing, this 0.5 improvement is also present on the private LB?</p>",
      "rawMarkdown": "```\nOur post-processing improved LB very well (LB 0.65 -> 0.70 jump up).\nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n```\n\ni definitely want to know about your post processing, this 0.5 improvement is also present on the private LB?",
      "votes": null
    },
    {
      "id": "1332222",
      "postDate": "06/02/2021 01:46:28",
      "content": "<p>My post-processing improves CV by 0.055. In ~2 hours i would know if it improves private LB by the same amount, and publish it, if it does.</p>",
      "rawMarkdown": "My post-processing improves CV by 0.055. In ~2 hours i would know if it improves private LB by the same amount, and publish it, if it does.",
      "votes": null
    },
    {
      "id": "1332226",
      "postDate": "06/02/2021 01:52:21",
      "content": "<p>On mine, i did tried several things, like bird-wise thresholds, determining nocalls/calls ratios with different models, combining bagging and mean with many models, nothing worked better than the good&amp;old weights and thresholds forcebreak, in the end it was my best score</p>",
      "rawMarkdown": "On mine, i did tried several things, like bird-wise thresholds, determining nocalls/calls ratios with different models, combining bagging and mean with many models, nothing worked better than the good&old weights and thresholds forcebreak, in the end it was my best score",
      "votes": null
    },
    {
      "id": "1332266",
      "postDate": "06/02/2021 02:34:22",
      "content": "<p>Thanks for the prompt write-up and congrat!<br>\nThe gain by post-processing is impressive, would love to know the tricks that you did</p>",
      "rawMarkdown": "Thanks for the prompt write-up and congrat!\nThe gain by post-processing is impressive, would love to know the tricks that you did",
      "votes": null
    },
    {
      "id": "1332282",
      "postDate": "06/02/2021 03:01:32",
      "content": "<p>I'm a team member.<br>\nIn detail, our post-processing improvement was here.</p>\n<ul>\n<li>public LB 0.65-&gt;0.70</li>\n<li>private LB 0.58-&gt;0.60</li>\n</ul>",
      "rawMarkdown": "I'm a team member.\nIn detail, our post-processing improvement was here.\n+ public LB 0.65->0.70\n+ private LB 0.58->0.60",
      "votes": null
    },
    {
      "id": "1333357",
      "postDate": "06/02/2021 16:49:29",
      "content": "<p>Thanks for sharing your team solution. I look forward to you and your team's gold medals next time.</p>",
      "rawMarkdown": "Thanks for sharing your team solution. I look forward to you and your team's gold medals next time.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1332214,
      "author_name": "lplenka",
      "author_url": "",
      "post_date": "06/02/2021 01:36:45",
      "content": "<p>Congratulations <a href=\"https://www.kaggle.com/takamichitoda\" target=\"_blank\">@takamichitoda</a> and team Overall a very good stable approach 👋 Keep it up!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1332218,
      "author_name": "victorasso",
      "author_url": "",
      "post_date": "06/02/2021 01:41:27",
      "content": "<pre><code>Our post-processing improved LB very well (LB 0.65 -&gt; 0.70 jump up).\nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n</code></pre>\n<p>i definitely want to know about your post processing, this 0.5 improvement is also present on the private LB?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1332222,
          "author_name": "fffrrt",
          "author_url": "",
          "post_date": "06/02/2021 01:46:28",
          "content": "<p>My post-processing improves CV by 0.055. In ~2 hours i would know if it improves private LB by the same amount, and publish it, if it does.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1332226,
          "author_name": "victorasso",
          "author_url": "",
          "post_date": "06/02/2021 01:52:21",
          "content": "<p>On mine, i did tried several things, like bird-wise thresholds, determining nocalls/calls ratios with different models, combining bagging and mean with many models, nothing worked better than the good&amp;old weights and thresholds forcebreak, in the end it was my best score</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1332282,
          "author_name": "shinmurashinmura",
          "author_url": "",
          "post_date": "06/02/2021 03:01:32",
          "content": "<p>I'm a team member.<br>\nIn detail, our post-processing improvement was here.</p>\n<ul>\n<li>public LB 0.65-&gt;0.70</li>\n<li>private LB 0.58-&gt;0.60</li>\n</ul>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1332266,
      "author_name": "alexlwh",
      "author_url": "",
      "post_date": "06/02/2021 02:34:22",
      "content": "<p>Thanks for the prompt write-up and congrat!<br>\nThe gain by post-processing is impressive, would love to know the tricks that you did</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1333357,
      "author_name": "piantic",
      "author_url": "",
      "post_date": "06/02/2021 16:49:29",
      "content": "<p>Thanks for sharing your team solution. I look forward to you and your team's gold medals next time.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1332201": "# [Interim] 68 place solution\n\n[It](https://www.kaggle.com/c/birdclef-2021/discussion/233454) said bagging works good in this competition.\nWe thought so too from us experiment, so our strategy is training various model and they ensemble.\n\nOur final submission is voting by 5 models that three rexnet_200, densenet161, and resnest50d.\n\n\n## teyo  part\n\nmy aproach is cnn classifier model\n\n### Data Preparation\n\nI cut out 5 seconds of audio from train short audio.\nThe training data was converted to logmel using torchlibrosa, and then increased to 3 channels.\nI used delta to increase channels, referring to past competitions. There was not much difference from simple repeat.\n\nReference [Cornell Birdcall Identification 4-th place solutinon](https://www.kaggle.com/vladimirsydor/4-th-place-solution-inference-and-training-tips)\n\n### model\n\nrexnet_200\n\nThe rexnet 200 was unusually strong:)\nI keep track of the f-1 for the train sound scape data and use the best f-1 weight.\n\nfor ensemble [densenet161, efficientnetv2_s, resnext50_32x4]\n\nnot worked efficientnetb0-4,resnest50d\n\n### data augmentation\n\n+ NoiseInjection\n+ PinkNoise\n+ RandomVolume\n+ SpecAugmentation (do in model)\n+ [Modified Mixup](https://www.kaggle.com/c/birdsong-recognition/discussion/183199)\n  + increase 0.02 in public LB\n\n### other settings\n\n+ split\n  + StratifiedKFold\n    + mainly 5 fold\n+ Scheduler\n  + CosineAnnealingWarmRestarts\n  + 30 epochs\n  + lr=1e-4\n  + min_lr=1e-6\n+ optimizer\n  + Adam\n+ criterion\n  + BCEWithLogitsLoss\n\n## shinmura part\nI mainly developed post-processing (And [hand labeing](https://www.kaggle.com/c/birdclef-2021/discussion/239911)).  \n\nOur post-processing improved LB very well (**LB 0.65 -> 0.70** jump up).  \nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n\n## toda part\n\n**※ My model has not used in our team final submission, so this part is \"I try, but it was not working\".**\n\nI have used the ResNet18 based SED model.\nMy ingenuity points are there three:\n\n### 1. add background noise \n\nIn order to make the audio of the training data as close as possible to the test data, I used the data of ESC50 to add noise to the training data. The selected audio are listed below.\n\nairplane, rain, water_drops, crackling fire, engine, insects, crickets, frog, wind\n\nI also adjusted Gain to give variation to the volume of the bird's voice, but this did not work.\n\n### 2. make model each site\n\nBirds that are observed differ depending on the area, and it is expected that some birds, such as migratory birds, will be observed only for a specific period. I decided to make a specialized model.\n\nSpecifically, the radius was within 1000 km from the observation point of the test data, and the period was narrowed down with a buffer of one month before and after the target period (for example, January to August for SSW).\n\nAfter narrowing down, we sorted by rating of each audio file and extracted the first 5 seconds of the top 300.\n\nThe dataset is here: [SSW](https://www.kaggle.com/takamichitoda/birdclef-ssw-max300), [SNE](https://www.kaggle.com/takamichitoda/birdclef-sne-max300), [COR](https://www.kaggle.com/takamichitoda/birdclef-cor-max300), [COL](https://www.kaggle.com/takamichitoda/birdclef-col-max300)\n\n### 3. generate nocall data\n\nI add nocall data that made from other site.\nThe method making nocall datasets is reversed the method making datasets each site.\nI extracted audio that is more than 1000km away from each site and is not in the target period.\n\nnocall data is [here](https://www.kaggle.com/takamichitoda/birdclef-nocall-each-site)",
    "1332214": "Congratulations @takamichitoda and team Overall a very good stable approach 👋 Keep it up!",
    "1332218": "```\nOur post-processing improved LB very well (LB 0.65 -> 0.70 jump up).\nOur post-processing is 7 ideas. But it's too long to write here.\n\nIf you want to know our post-processing, please comment me.\nThen I will build another thread.\n```\n\ni definitely want to know about your post processing, this 0.5 improvement is also present on the private LB?",
    "1332222": "My post-processing improves CV by 0.055. In ~2 hours i would know if it improves private LB by the same amount, and publish it, if it does.",
    "1332226": "On mine, i did tried several things, like bird-wise thresholds, determining nocalls/calls ratios with different models, combining bagging and mean with many models, nothing worked better than the good&old weights and thresholds forcebreak, in the end it was my best score",
    "1332266": "Thanks for the prompt write-up and congrat!\nThe gain by post-processing is impressive, would love to know the tricks that you did",
    "1332282": "I'm a team member.\nIn detail, our post-processing improvement was here.\n+ public LB 0.65->0.70\n+ private LB 0.58->0.60",
    "1333357": "Thanks for sharing your team solution. I look forward to you and your team's gold medals next time."
  },
  "source": "meta"
}