flac音频文件到文本文件的java程序
我有可以将.wav转换为文本文件的代码。但我也想将.flac转换为文本。似乎AudioInputStream不支持.flac类型。我应该在mycode中做什么修改,以便它可以将.flac文件转换为文本?这是完整的代码。我添加这一行是因为堆栈溢出要求我这样做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
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
您在此处遇到什么错误?不支持输出文件可能与您在此处遇到的错误重复?不支持输出文件可能与重复