作者johnny1276 (山羊)
看板java
標題[問題] 讀語音檔出來的陣列值與C讀出來的不同
時間Sun Aug 21 21:42:56 2011
※ [本文轉錄自 AndroidDev 看板 #1EKGis7z ]
作者: johnny1276 (山羊) 看板: AndroidDev
標題: [問題] 讀語音檔出來的陣列值與C讀出來的不同
時間: Sun Aug 21 21:42:09 2011
最近在測試讀語音檔
利用DataInputStream來讀Short型態的陣列出來
我就先測試將陣列值乘以二(變大聲)、除以二(變小聲)
乘以二出來的語音真的會變大聲
但是除以二的值卻會變成雜訊干擾很大的語音
照理來說應該音量會變一半才對,也不會雜訊變大
於是我利用MATLAB和C++來讀相同的語音檔
利用fopen和fread來讀取 (16bit) Short語音陣列
出來的值和JAVA出來的差異極大
我也試過換一個不同的API來讀取
ByteArrayOutputStream來讀取
先存成byte陣列 再轉換
出來的值也與原本的DataInputStream出來的陣列值相同
想問問這樣算是正常嗎
還是我讀取方法有錯了嗎
實在不懂為何除以二會變成雜訊干擾的語音
寫得有點落落長@@
麻煩大家幫小弟我解答了
感激不盡!!!!! ^ ^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.198.76
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.114.198.76
→ johnny1276:如有需要 晚點附上程式碼 感謝^ ^ 08/21 21:43
推 shaopin:有沒有注意Endiannes問題? 08/22 05:26
→ johnny1276:可以請問一下那是什麼嗎 08/22 11:28
推 shaopin:byte在記憶體中的擺放順序 08/23 00:39
→ johnny1276:問題解決囉 edian的問題 08/23 10:53