قراءة ومعالجة ملفات الصوت من نوع raw على الماتلاب


(Electrical_engineer) #1

السلام عليكم
لو كان عندي ملف صوت من نوع raw
sampling rate = 8000 samples/sec for example
samples are signed 16-bit sample values
one sample takes 2 bytes

كيف يمكن قراءه هذا الملف ومعرفة عدد و معدل السامبلز

MyFile = fopen('myfile path')
MyFileData = fread(MyFile)
y = MyFileData / 8000
x= size(y)


(Electrical_engineer) #2

هل من فكرة حول كيفية كتابة كود مناسب ؟؟؟ سواء بالماتلاب او بلغة سي ؟؟؟؟؟


(Ahmed) #3

[CENTER]السلام عليكم

اخي الافضل ان تعطينا ملف لنستطيع المساعدة
ويجب ان نعرف مصدر الملف ايضا "format "
لان ملفات raw هي ملفات binary لا تحتوي على معلومات header

[/center]


(Electrical_engineer) #4

اخي الكريم … في المرفقات الملف المطلوب


(Ahmed) #5

[CENTER]ممكن هذا يساعدك
افترضت انه
channel واحدة
و يستخدم IEEE little-endian


fid = fopen('test.raw','r','ieee-le');
data=fread(fid,inf,'int16');
wavplay(int16(data), 8000);

سمعت صوت القطار

[/center]


(Electrical_engineer) #6

[LEFT]Yes Dr.Article… it is train voice
I have used this code and got same sound

close all
clear all

fs = 8000;

Y = fopen('C:\*******\Desktop\PythonCodes	est.raw', 'r');

data = fread(Y,'int16');

sound(data,fs)



[/left]


(Electrical_engineer) #7

[LEFT]]Brother … Do you have idea how to figure out the number of samples and the minimum and maximum values , Also the average value of all samples of this file ???

[/left]