PDA

View Full Version : حرفه ای: پیش بینی ادامه ی یک فایل صوتی



IamOverlord
یک شنبه 27 آذر 1390, 00:25 صبح
سلام دوستان،
من این برنامه رو تا این جا نوشتم، ولی به چند تا مشکل برخوردم :
1. حدود 38000 تا عدد رو به ListBox اضافه می کنم و ListBox یه عدد چرتی برای ListCount نشون می ده.
آخر مجبور شدم ، 1000 تا از Item ها رو استفاده کنم.
2. نمی دونم چه طوری می تونم ادامه ی آهنگ رو که به صورت عدد پیش بینی کردم و گذاشتم تو lstPredictedSerie پخش کنم.

Mr'Jamshidy
یک شنبه 27 آذر 1390, 08:39 صبح
از آرایه ها استفاده کن تا 65535 تا اگر اشتباه نکنم جواب میده اگر عددت از 65535 تا بیشتر شد بزار تو متغیر بعدی

vb6_man
یک شنبه 27 آذر 1390, 08:57 صبح
Google it:قهقهه:

IamOverlord
یک شنبه 27 آذر 1390, 15:06 عصر
(چه طور 2 کلمه می تونه یه آدمو بهم بریزه؟) :گیج:

به نظرتون چرا lstSerie.ListCount اشتباه کار می کنه؟!

vb6_man
یک شنبه 27 آذر 1390, 15:16 عصر
دلم واست سوخت:قلب:
ببین ListCount یه متغیر هست از نوع Integer
و می تونه از 0 تا 32767 رو قبول کنه
اگه عدد بیشتر بهش بدی از این مقدار کم می شه ( Over Flow ) منفی نشون میده
حالا اگه می خوای برنامت درست کار کنه از این استفاده نکن
یه متغییر از نوع Long تعریف کن که رنج عددیش زیاد باشه و تو حلقه هر دفعه بهش اضافه کن ( یه ListCount خودت بساز )
:بامزه:

Mr'Jamshidy
یک شنبه 27 آذر 1390, 17:51 عصر
آقا دروغ گفتم سقف آرایه 199999999 هست من همین الان امتحان کردم (البته برای متغیر از نوع Byte)

IamOverlord
دوشنبه 28 آذر 1390, 01:58 صبح
خوب می شه شبیه ++C ، بگیم که ListCount رو Signed یا Unsigned در نظر بگیره؟ من که به اعداد منفی نیاز ندارم برای ListCount، پس اگه Unsigned در نظر بگیره ظرفیت 2 برابر می شه. یا کسی می دونه وقتی عددمون خیلی زیاد می شه ، این اعداد منفی با چه الگویی ایجام می شه که بعدا تبدیلشون کنیم به اعداد مثبت؟

M.T.P
دوشنبه 28 آذر 1390, 09:06 صبح
سلام
از listview استفاده کنید. تا 2 میلیارد رو راحت جواب میده.

aleas2
دوشنبه 28 آذر 1390, 10:18 صبح
والا من هر اهنگی تست کردم قبول نکردم یه اهنگ که خودت تست کردی برام خصوصی یا همینجا بده شایدم تونستم مشکلو پیدا کردم !

IamOverlord
دوشنبه 28 آذر 1390, 15:27 عصر
فایل های کوتاه wav بده مثلا Speech On.wav واسه Windows.
که از 1000 سیگنال اول فایل wav استفاده می شه.
وقتی Start رو زدی یه کم صبر کن بهت 500 تا ضریب می ده که واسه ی یه دنباله ی بازگشتی ساده است:
A(n)=P1*A(n-1)+P2*A(n-2)+P3*A(n-3)+...+P(497)*A(n-497)+P(498)*A(n-498)+P(499)*A(n-499)+P(500)*A(n-500)

بعد توی TextBox عدد 5 رو وارد کن، 5 سیگنال بعدی رو پیش بینی می کنه (حدس می زنه).
(کد رو که بهینه کردم باز می ذارم.)
فقط ببینید چه طور می شه اون اعداد رو پشت سر هم پخش کرد. (واسه این کار شاید محتوای پوشه ی tone به کارتون بیاد.)

IamOverlord
سه شنبه 29 آذر 1390, 00:16 صبح
این هم فایل Speech On.wav واسه تست :

aleas2
سه شنبه 29 آذر 1390, 01:47 صبح
خب الان میشه بگین مشکل چی؟شما میگفتین با لیست باکس مشکل دارین ولی اینی بنده تست کردم مشکلی نداشت درست کار میکنه ضمنا از متغیر Variant هم میتونین استفاده که محدودیت فکر نکنم داشته باشه !

IamOverlord
سه شنبه 29 آذر 1390, 02:51 صبح
خوب معلومه مشکل نداره، چون از ListCount تو کدم استفاده نمی کنم و از بدون در نظر گرفتن ListCount از 1000 تا Item اوّل اسفاده می کنم.
وقتی فایل Load شد، برنید MsgBox lstSerie.ListCount می بینید که غلط کار می کنه.

aleas2
سه شنبه 29 آذر 1390, 13:18 عصر
متاسفانه نمیتونم کمکی بهتون بکنم چون تا حالا اینکارو نکردم برای پخش عداد نمیدونم اصلا اعداد چطور باید پخش بشن !
فقط برای لیست باکس پیشنهاد میکنم همونطور که M.T.P (http://barnamenevis.org/member.php?132020-M.T.P) گفتن از ListView
استفاده کن چون لیست باکس تا 32767 بیشتر جواب نمیده و اگر مقدار بیشتی اضافه کنی دگه نمیتونی به طور مثال نمیتونی سطر 32768 بریزی تو یه متغییر دگه و بقیه مشکلات