Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
flac音频文件到文本文件的java程序_Java_Speech To Text - Fatal编程技术网

flac音频文件到文本文件的java程序

flac音频文件到文本文件的java程序,java,speech-to-text,Java,Speech To Text,我有可以将.wav转换为文本文件的代码。但我也想将.flac转换为文本。似乎AudioInputStream不支持.flac类型。我应该在mycode中做什么修改,以便它可以将.flac文件转换为文本?这是完整的代码。我添加这一行是因为堆栈溢出要求我这样做 import java.io.File; import javax.sound.sampled.*; public class AudioFileConvert01 { public static void main(Strin

我有可以将.wav转换为文本文件的代码。但我也想将.flac转换为文本。似乎AudioInputStream不支持.flac类型。我应该在mycode中做什么修改,以便它可以将.flac文件转换为文本?这是完整的代码。我添加这一行是因为堆栈溢出要求我这样做

import java.io.File;

import javax.sound.sampled.*;

public class AudioFileConvert01 {
     public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("Usage: java AudioFileConvert01 " +   "inputFile outputFile");
            System.exit(0);
        }
        System.out.println("Input file: " + args[0]);
        System.out.println("Output file: " + args[1]);
        // Output file type depends on outputfile name extension.

        String outputTypeStr = args[1].substring(args[1].lastIndexOf(".") + 1);
        System.out.println("Output type: " + outputTypeStr);
    AudioFileFormat.Type outputType = getTargetType(outputTypeStr);
    if (outputType != null) {
        System.out.println("Output type is supported");
    } else {
        System.out.println("Output type not supported.");
        getTargetTypesSupported();
        System.exit(0);
    }
    // Note that input file type does not depend on file name or extension.
    File inputFileObj = new File(args[0]);
    AudioInputStream audioInputStream = null;
    try {
        audioInputStream = AudioSystem.getAudioInputStream(inputFileObj);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    } // end catch
    System.out.println("Input file format:");
    showFileType(inputFileObj);
    int bytesWritten = 0;
    try {
        bytesWritten = AudioSystem.write(audioInputStream, outputType, new File(args[1]));
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    }
    System.out.println("Bytes written: " + bytesWritten);
    System.out.println("Output file format:");
    showFileType(new File(args[1]));
}

private static void getTargetTypesSupported() {
    AudioFileFormat.Type[] typesSupported = AudioSystem.getAudioFileTypes();
    System.out.print("Supported audio file types:");
    for (int i = 0; i < typesSupported.length; i++) {
        System.out.print(" " + typesSupported[i].getExtension());
    }
    // for
    // loop
    System.out.println();

}

private static AudioFileFormat.Type getTargetType(String extension) {
    AudioFileFormat.Type[] typesSupported = AudioSystem.getAudioFileTypes();
    for (int i = 0; i < typesSupported.length; i++) {
        if (typesSupported[i].getExtension().equals(extension)) {
            return typesSupported[i];
        }
    }
    return null;// no match
}

private static void showFileType(File file) {
    try {
        System.out.println(AudioSystem.getAudioFileFormat(file));
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(0);
    }
   }
}
导入java.io.File;
导入javax.sound.sampled.*;
公共类AudioFileConvert01{
公共静态void main(字符串[]args){
如果(参数长度!=2){
System.out.println(“用法:java AudioFileConvert01”+“inputFile outputFile”);
系统出口(0);
}
System.out.println(“输入文件:+args[0]);
System.out.println(“输出文件:“+args[1]);
//输出文件类型取决于输出文件扩展名。
字符串输出类型str=args[1]。子字符串(args[1]。lastIndexOf(“.”+1);
System.out.println(“输出类型:+outputTypeStr”);
AudioFileFormat.Type outputType=getTargetType(outputTypeStr);
if(outputType!=null){
System.out.println(“支持输出类型”);
}否则{
System.out.println(“不支持输出类型”);
getTargetTypesSupported();
系统出口(0);
}
//请注意,输入文件类型不依赖于文件名或扩展名。
File inputFileObj=新文件(args[0]);
AudioInputStream AudioInputStream=null;
试一试{
audioInputStream=AudioSystem.getAudioInputStream(inputFileObj);
}捕获(例外e){
e、 printStackTrace();
系统出口(0);
}//端盖
System.out.println(“输入文件格式:”);
showFileType(inputFileObj);
int字节数=0;
试一试{
BytesWrite=AudioSystem.write(audioInputStream,outputType,新文件(args[1]);
}捕获(例外e){
e、 printStackTrace();
系统出口(0);
}
System.out.println(“写入的字节数:”+写入的字节数);
System.out.println(“输出文件格式:”);
showFileType(新文件(args[1]);
}
私有静态void getTargetTypesSupported(){
AudioFileFormat.Type[]类型支持=AudioSystem.getAudioFileTypes();
System.out.print(“支持的音频文件类型:”);
对于(int i=0;i
您在此处遇到什么错误?不支持输出文件可能与您在此处遇到的错误重复?不支持输出文件可能与重复