PDA

View Full Version : ضبط صدا با دلفی



_abiriamir
پنج شنبه 07 خرداد 1388, 11:29 صبح
سلام دوستان
چگونه میتوانیم با دلفی صدایی به مشخصات زیر ظبط کنیم؟

PCM
8.000kHz; 16bit Mono; 14 kb/s

Saeed_m_Farid
پنج شنبه 07 خرداد 1388, 16:01 عصر
سلام دوستان
چگونه میتوانیم با دلفی صدایی به مشخصات زیر ظبط کنیم؟

PCM
8.000kHz; 16bit Mono; 14 kb/s
شما ميتونيد از TurboPower Async Professional (http://sourceforge.net/projects/tpapro/) استفاده كنيد، اين Toolkit شامل يك سري كامپوننت هاي فراگير از Microsoft Speech API گرفته تا VoIP و فاكس و ... ميشه؛ در ضمن ميتونيد از كامپوننت هاي كار با پورت سريال اون هم استفاده كنيد.

اگه دوست داريد مستقيما با سخت افزار كار كنيد اول يه سري به يونيت MMSystem بزنيد، بعدش هم بايد بگين كه از كجا ميخوايد بافرهاي Voice رو بگيريد؟ (resource تون چيه؟)
توضيح بيشتر هم نميدم چون يكي دو بار خواستم در موردش صحبت كنم، دوستان گفتن توضيح اضافي ندين ...

موفق باشيد.

_abiriamir
جمعه 15 خرداد 1388, 20:28 عصر
دوست عزیز
نحوه استفدشو هم به ما بگو

Saeed_m_Farid
یک شنبه 17 خرداد 1388, 19:03 عصر
دوست عزیز
نحوه استفدشو هم به ما بگو
سلام
دوست عزیز، شما هیچ کدوم از سوالهای منو جواب ندادین :


از چه Device ای برای ضبط میخوای استفاده کنی؟
فقط همین که یه صدا با مشخصات بالا رو ضبط کنی واست کافیه؟
این سری TurboPower Async Professional (http://sourceforge.net/projects/tpapro/) رو دانلود و نصب کردی یا TMediaPleyer رو استفاده کردی ...

من فرض میکنم که شما نظرت همون مورد 2 هست؛ برای اینکار همونطورکه گفتم MMSystem رو use کن و یه Button به نام مثلا btnStopStartRec بذار رو فرمت، اونوقت با این کد یه فایل بنام C:\First8bitMono.wav با مشخصاتی که میخواستی درست میکنه! به همین راحتی


procedure TForm1.btnStopStartRecClick(Sender: TObject);
begin
if btnStopStartRec.Caption = 'Record' then begin
btnStopStartRec.Caption := 'Stop';
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mySound',nil,0,Handle);
mciSendString('SET mySound ' +
'TIME FORMAT MS ' +
'BITSPERSAMPLE 16 ' +
'CHANNELS 1 ' +
'SAMPLESPERSEC 8000 ' +
'BYTESPERSEC 14000 ' +
'ALIGNMENT 4',
nil,0,handle);
mciSendString('RECORD mySound',nil,0,Handle);
end else begin
btnStopStartRec.Caption := 'Record';
mciSendString('STOP mySound',nil,0,Handle);
mciSendString('SAVE mySound "C:\First8bitMono.wav"',nil,0,Handle);
mciSendString('CLOSE mySound',nil,0,Handle);
end;
end;
ولی اگه خواستی ادامه بدی یا یه Device دیگه غیر از میکروفن داری و ...من خیلی هم خوشحال میشم که توضیحات شما رو بشنوم.
در ضمن TurboPower Async Professional (http://sourceforge.net/projects/tpapro/) خیلی گسترده اس و بدون اطلاعات اولیه در مورد کار شما نمیشه همه چی رو اینجا توضیح داد.

_abiriamir
دوشنبه 25 خرداد 1388, 13:48 عصر
با عرض سلام تشکر از شما

اول از شما به خاطر پاسخ دیرم معذرت میخواهم

دوم: من میخواهم با میکروفن کار کنم

سوم: کد شما را استفاده کردم اما پس از ضبط، ویندوز مدیاپلیر آنرا باز نمی کند در صورتی که وقتی صدایی با همان مشخصات اما با sound recorder ویندوز ضبط میکنم اینجور نیست.

_abiriamir
دوشنبه 25 خرداد 1388, 13:50 عصر
با عرض سلام تشکر از شما

اول از شما به خاطر پاسخ دیرم معذرت میخواهم

دوم: من میخواهم با میکروفن کار کنم

سوم: کد شما را استفاده کردم اما پس از ضبط، ویندوز مدیاپلیر آنرا باز نمی کند در صورتی که وقتی صدایی با همان مشخصات اما با sound recorder ویندوز ضبط میکنم اینجور نیست.

چهارم: این که ربطی به اون کامپوننت نداشت

gh-reza
جمعه 05 تیر 1388, 18:36 عصر
به این سایت نگاه کنید. دیگه توضیح کامل تر از این نمیشه
http://juhara.com/article-2-Sound-Recording-with-Wave-API.html

Saeed_m_Farid
جمعه 05 تیر 1388, 20:35 عصر
سوم: کد شما را استفاده کردم اما پس از ضبط، ویندوز مدیاپلیر آنرا باز نمی کند در صورتی که وقتی صدایی با همان مشخصات اما با sound recorder ویندوز ضبط میکنم اینجور نیست.
چهارم: این که ربطی به اون کامپوننت نداشت
اين كد دقيقاً همون كاري رو ميكنه كه sound recorder با API هاي ويندوز انجام ميده، اگه شما از نتيجه راضي نيستيد لازم نيست با اين فرمت و مشخصات صدا رو ضبط كنيد. Bit Rate وRate sample مناسبتري انتخاب كنيد و دو كاناله صدا رو ضبط كنيد.
نتيجه اين كد دقيقاً اون چيزي خواهد بود كه شما تو پست اولتون خواسته بوديد (ميتونيد تو عكس ضميمه ببينيد) براي تغيير مشخصات صداي ضبط شده و يا كيفيت مطلوبتر و ... تو mciSendString دومي، مقادير مناسب با كارتون رو انتخاب كنيد. درضمن مشخصاً این کد ربطی به اون کامپوننت نداشت! چون شما واسه كار به اين سادگي (ضبط صدا از ميكروفن) نيازي به استفاده از اون toolkit با امكانات فراوان جانبي و بعضاً گيج كننده اش، نداريد.

_abiriamir
پنج شنبه 11 تیر 1388, 12:28 عصر
اول مرسی
ولی خب ویندوز مدیاپلیر نتیجه ضبط soundrecorder ویندوز رو باز میکنه ولی اینو نه!!!!!!!!!!!!!!!!!!!!!!1