用Java讀取檔案文字並語音播報
阿新 • • 發佈:2022-01-07
1、引入第三方jar包 jacob.jar
2、講第三方依賴 dll檔案 置於jdk安裝目錄下(JAVA_HOME\bin)
/** * 一個用java程式碼實現 語音播報示例 */ //如此處報錯,可能是jar的問題 可能要到網上下一個jacob試試 import com.jacob.activeX.ActiveXComponent; //如此處報錯,可能是jar的問題 可能要到網上下一個 jacob試試 import com.jacob.com.Dispatch; //如此處報錯,可能是jar的問題 可能要到網上下一個 jacob試試 import com.jacob.com.Variant;import java.io.*; public class VoicePlay { // 程式入口 public static void main(String[] args) { try { voice(); } catch (IOException e) { } } public static void voice() throws IOException { // 拿到音響 ActiveXComponent sap = new ActiveXComponent("sapi.SpVoice");// 找到本地要朗讀的檔案 try { File srcFile = new File("E:/b.txt"); // 獲取文字文件的內容 FileReader flie = new FileReader(srcFile); // 從快取區拿到資料 BufferedReader bf = new BufferedReader(flie); // 拿到緩衝區的資料 String content = bf.readLine();// 測試一下 有沒有拿到資料 System.out.println(content); // 調節語速 音量大小 sap.setProperty("Volume", new Variant(100)); sap.setProperty("Rate", new Variant(0)); Dispatch xj = sap.getObject(); // while (content != null) { // Dispatch.call(xj, "Speak", new Variant(content)); // } // 執行朗讀 沒有讀完就繼續讀 Dispatch.call(xj, "Speak", new Variant(content)); xj.safeRelease(); bf.close(); } catch (FileNotFoundException e) { e.printStackTrace(); sap.safeRelease(); } } }
第三方依賴下載地址(已上傳部落格園 jacob-1.20.zip)
部落格園下載:https://files-cdn.cnblogs.com/files/blogs/666773/jacob-1.20.zip
github下載:https://github.com/freemansoft/jacob-project/releases
參考