Given a tag and list of runs, serve a list of metadata for audio.

    Note that the actual audio data are not sent; instead, we respond
    with URLs to the audio. The frontend should treat these URLs as
    opaque and should not try to parse information about them or
    generate them itself, as the format may change.

    Args:
      request: A werkzeug.wrappers.Request object.

    Returns:
      A werkzeug.Response application.

def _serve_audio_metadata(self, request):
    """Given a tag and list of runs, serve a list of metadata for audio.

    Note that the actual audio data are not sent; instead, we respond
    with URLs to the audio. The frontend should treat these URLs as
    opaque and should not try to parse information about them or
    generate them itself, as the format may change.

    Args:
      request: A werkzeug.wrappers.Request object.

    Returns:
      A werkzeug.Response application.
    """
    tag = request.args.get('tag')
    run = request.args.get('run')
    sample = int(request.args.get('sample', 0))

    events = self._multiplexer.Tensors(run, tag)
    response = self._audio_response_for_run(events, run, tag, sample)
    return http_util.Respond(request, response, 'application/json')