1
0

2 کامیت‌ها 54dd53747c ... 2431590bf0

نویسنده SHA1 پیام تاریخ
  jiayi 2431590bf0 音频转换可配置化,上传完转换音频后立即删除 1 سال پیش
  jiayi 8146c66ec3 音频转换可配置化,上传完转换音频后立即删除 1 سال پیش

+ 1 - 3
src/main/java/com/wj/Application.java

@@ -10,11 +10,9 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @EnableScheduling
 public class Application {
 
-    public static void main(String[] args) throws Exception {
+    public static void main(String[] args) {
 
         SpringApplication.run(Application.class, args);
-//        String newMp3Path = AudioTransferWavUtils.transferAudio("C:\\Users\\13491\\Desktop\\realme\\532001001525897.wav", "532001001525897-new8000");
-//        System.out.println(newMp3Path);
     }
 }
 

+ 1 - 0
src/main/java/com/wj/service/ProcessFilesService.java

@@ -9,6 +9,7 @@ import com.wj.service.impl.XmlProcessor;
 import com.wj.utils.AudioTransferWavUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import java.io.IOException;
 import java.nio.file.Files;

+ 4 - 10
src/main/java/com/wj/service/impl/Determine.java

@@ -4,6 +4,8 @@ import com.wj.DTO.RecordingInfo;
 import com.wj.config.PropertiesConfig;
 import com.wj.config.TOSV2Config;
 import com.wj.exception.CustomXmlParseException;
+import com.wj.utils.FileUtils;
+
 import java.io.File;
 import java.nio.file.Path;
 import java.time.LocalDate;
@@ -42,6 +44,8 @@ public class Determine {
                             String str = ("以默认时间上传当天录音: " + wavFilePath);
                             uploadFile(tos.getClient(), bucketName, new File(xmlPath.getParent().resolve(info.getFileName()) + ".wav"), info.getSwitchCallId(), str);
                             //logger.info("以默认时间上传当天录音: " + wavFilePath);
+                            // 上传完成后立马删除
+                            FileUtils.deleteFile(wavFile);
                         } else {
                             throw new CustomXmlParseException("WAV文件不存在或无法访问: " + wavFilePath);
                         }
@@ -75,15 +79,5 @@ public class Determine {
             throw new CustomXmlParseException("无法解析XML文件或文件名为空: " + xmlPath);
         }
     }
-    private void processAudioFile(String wavFilePath) {
-        try {
-            // 在这里执行音频文件的格式处理逻辑
-            // 例如,将wavFilePath的音频文件转换为标准的WAV格式
-            // 然后上传处理后的文件
-            // ...
-        } catch (Exception e) {
-            System.err.println("音频处理失败:" + e.getMessage());
-        }
-    }
 }
 

+ 12 - 1
src/main/java/com/wj/utils/AudioTransferWavUtils.java

@@ -3,14 +3,25 @@ package com.wj.utils;
 import com.wj.DTO.RecordingInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.bytedeco.javacpp.Loader;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.Optional;
 
 @Slf4j
+@Component
 public class AudioTransferWavUtils {
+    private static String audioSamplerRate;
+    private static String audioChannel;
 
+    @Autowired
+    public void setMyProperty(@Value("${transfer.audio.samplerRate:8000}") String audioSamplerRateTemp,@Value("${transfer.audio.channel:1}") String audioChannelTemp) {
+        audioSamplerRate = audioSamplerRateTemp;
+        audioChannel = audioChannelTemp;
+    }
     /**
      * 根据RecordingInfo信息转换音频为标准wav格式
      *
@@ -45,7 +56,7 @@ public class AudioTransferWavUtils {
     public static Optional<String> transferWavStandard(String oldFilePath, String newFilePath) {
         String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class); // 加载ffmpeg
         ProcessBuilder transferBuilder = new ProcessBuilder(
-                ffmpeg, "-i", oldFilePath, "-f", "wav", "-ar", "16000", "-ac", "1", "-y", newFilePath);
+                ffmpeg, "-i", oldFilePath, "-f", "wav", "-ar", audioSamplerRate, "-ac", audioChannel, "-y", newFilePath);
         try {
             transferBuilder.inheritIO().start().waitFor(); // 执行转换命令
         } catch (InterruptedException | IOException e) {

+ 14 - 0
src/main/java/com/wj/utils/FileUtils.java

@@ -1,5 +1,7 @@
 package com.wj.utils;
 
+import lombok.extern.log4j.Log4j;
+
 import java.io.File;
 
 public class FileUtils {
@@ -20,5 +22,17 @@ public class FileUtils {
             }
         }
     }
+
+    public static void deleteFile(File file) {
+        if (file.exists()) {
+            if (file.delete()) {
+                System.out.println("文件删除成功");
+            } else {
+                System.out.println("文件删除失败");
+            }
+        } else {
+            System.out.println("文件不存在");
+        }
+    }
 }
 

+ 5 - 0
src/main/resources/application.properties

@@ -40,3 +40,8 @@ SQL_URL=http://172.17.144.163:8080/EliteGeneralHttpTaskNew/GeneralService/Update
 #SQL_URL=https://callcenter.realmeservice.com/EliteGeneralHttpTaskNew/GeneralService/UpdateRecordURL
 # 缓存解析的xml文件最大条数
 XML_CACHE_MAX=1000
+
+# 音频转化音频采样率默认8000
+transfer.audio.samplerRate=8000
+# 音频通道数-1(默认单声道)
+transfer.audio.channel=1