public void convertSound(File root) {
		final File targetFolder = new File(root, "_generated/sound");

		try {
			Log.v("Converting SFX...");
			final SoundConverter sc = createSFXEncoder();

			Map<String, File> files = new HashMap<String, File>();
			FileUtil.collectFiles(files, new File(root, "/_original/sound"), false, false, new FileCollectFilter() {
				public boolean accept(String relpath, File file) {
					if (file.isDirectory()) return true;
					return relpath.endsWith("wav") || relpath.endsWith("ogg");
				}
			});

			BatchProcess bp = createBatch();
			bp.run(files, new FileOp() {
				@Override
				public void execute(String relpath, File file) throws IOException {
					sc.convertFile(file, targetFolder);
				}
			});
		} catch (InterruptedException ie) {
			Log.w("Batch Process Interrupted");
		}

		if (convertVoice) {
			Log.v("Converting Voice...");
			final SoundConverter sc = createVoiceEncoder();

			Map<String, File> files = new HashMap<String, File>();
			FileUtil.collectFiles(files, new File(root, "/_original/patch6"), false, false, new FileCollectFilter() {
				public boolean accept(String relpath, File file) {
					if (file.isDirectory()) return true;
					return relpath.endsWith("wav") || relpath.endsWith("ogg");
				}
			});

			BatchProcess bp = createBatch();
			bp.setTaskSize(250);
			try {
				bp.run(files, new FileOp() {
					@Override
					public void execute(String relpath, File file) throws IOException {
						sc.convertFile(file, targetFolder);
					}
				});
			} catch (InterruptedException ie) {
				Log.w("Batch Process Interrupted");
			}
		}
	}