// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// AUTOGENERATED FILE
//
// This file is autogenerated! If you need to modify it, be sure to
// modify the script that exports Google voice data for use in Chrome.

// Initialize the voice array if it doesn't exist so that voice data files
// can be loaded in any order.

if (!window.voices) {
  window.voices = [];
}

// Add this voice to the global voice array.
window.voices.push({
  'pipelineFile': '/voice_lstm_ko-KR/ism/pipeline',
  'prefix': '/voice_lstm_ko-KR/ism/',
  'voiceType': 'lstm',
  'cacheToDisk': false,
  'lang': 'ko-KR',
  'displayName': 'Korean',
  'voiceName': 'Chrome OS 한국의',
  'removePaths': [],
  'files': [
    {
      'path': '/voice_lstm_ko-KR.zvoice',
      'url': '',
      'md5sum': '43b0d50f334b2f1227d78d44432370ee',
      'size': 6450671,
    },
  ],
});
