شبیه ساز ساده دهان با پایتون

شبیه ساز ساده دهان با پایتون

با سلام در این آموزش قصد داریم تا به کمک شدت صدایی که توسط میکروفون دریافت می کنیم یک شبیه ساز ساده دهان بسازیم.

خلاصه

خوب برنامه ما به این صورت کار می کنه که

یک حلقه داریم که به صورت real time میزان صدا رو به عدد به ما بر می گردونه

حالا ما یک تابع می نویسیم که در اون 5 level مختلف از شدت صدا قرار داشته باشه

اگر ما بر اساس عددی که شدت صدای میکروفون به ما می ده یکی از لول های تصویری رو انتخاب کنیم و در ترمینال چاپ کنیم برنامه ما تکمیل میشه

سورس کد

import sounddevice as sd
import numpy as np
from os import system, name
from time import sleep

# تابع پاک کردن ترمینال در ویندوز یا لینوکس
def clear():
    if name == 'nt':
        _ = system('cls')
    else:
        _ = system('clear')

#تابع نمایش دهان
def print_sound(indata, outdata, frames, time, status):
    volume = int(np.linalg.norm(indata)*10) #شدت صدا
    clear() #پاک کردن ترمینال
    if volume < 4:
        print levelList[0]
    elif volume < 6:
        print levelList[1]
    elif volume < 8:
        print levelList[2]
    elif volume < 10:
        print levelList[3]
    elif volume >= 10:
        print levelList[4]
    sd.sleep(50) #مدت زمان نمایش هر لول

#لول های تصویری
level1 = "\n\n\n\n    * * * * * * * * *\n    * * * * * * * * *\n\n\n"
level2 = "\n\n\n      * * * * * * *\n    *               *\n    *               *\n      * * * * * * *\n\n"
level3 = "\n\n       * * * * * *\n     *             *\n    *               *\n    *               *\n     *             *\n       * * * * * *\n"
level4 = "\n        * * * * *\n      *           *\n    *               *\n    *               *\n    *               *\n      *           *\n        * * * * *\n"
level5 = "\n        * * * * *\n      *           *\n    *               *\n    *               *\n    *               *\n    *               *\n      *           *\n        * * * * *"
levelList = [level1,level2,level3,level4,level5]

with sd.Stream(callback=print_sound):
    sd.sleep(20000) #برای 20 ثانیه برنامه اجرا می شود

برنامه بسیار ساده می باشد و توضیحات مختصری در کامنت های برنامه مو جود می باشد

نظر خود را بگویید

آدرس ایمیل شما منتشر نخواهد شد. قسمت های مورد نیاز علامت گذاری شده است *