منصوبي جو خيال آهي وائس کان ٽيڪسٽ ويسپر ماڊل استعمال ڪندي اسان جي PC يا اسان جي Raspberry Pi ذريعي رابطي لاءِ آواز جون هدايتون ڏيو.
اسان هڪ آرڊر ڏينداسين جيڪو نقل ڪيو ويندو، متن ۾ تبديل ڪيو ويندو، ويسپر سان ۽ پوء مناسب آرڊر تي عمل ڪرڻ لاء تجزيو ڪيو ويندو، جيڪو هڪ پروگرام تي عمل ڪرڻ کان وٺي RaspberryPi پنن کي وولٽيج ڏيڻ تائين ٿي سگهي ٿو.
مان هڪ پراڻي Raspberry Pi 2 استعمال ڪرڻ وارو آهيان، هڪ مائڪرو USB ۽ مان استعمال ڪندس وائس-ٽو-ٽيڪسٽ ماڊل تازو OpenAI پاران جاري ڪيل، ويندڙ. مضمون جي آخر ۾ توهان ڏسي سگهو ٿا ٿورو وڌيڪ ڳوڙها.
سڀ پروگرام ۾ Python.
مان توهان کي ڏيکاريان ٿو ته اهو ڪيئن ڪم ڪري ٿو هن وڊيو ۾، آواز ذريعي PC کي ڪنٽرول ڪرڻ.
اسيمبلي
پي سي سان استعمال ڪرڻ لاء، اسان کي صرف هڪ مائڪرو فون جي ضرورت پوندي.
جيڪڏهن توهان ان کي RaspberryPi تي چڙهڻ وارا آهيو، توهان کي هڪ USB مائڪروفون جي ضرورت پوندي، ڇاڪاڻ ته اهو جيڪ صرف ان جي پيداوار لاء آهي.
گهربل:
جيئن ته اوزار جو عام مقصد آواز جي سڃاڻپ آهي. مون کي ان کي ٻين ڊوائيسز جي آپريشن ۾ ضم ڪرڻ لاء تمام مفيد معلوم ٿئي ٿو.
- مائڪرو USB
- Raspberry PI آپريٽنگ سسٽم سان (Raspbian پرو مثال)
- اليڪٽرانڪس (LED، تار، 480 ohm resistor ۽ breadboard)
اسان LED کي پن 17 سان ڳنڍيون ٿا، جيڪو اهو آهي جيڪو اسان هن تجربي لاءِ چالو ۽ غير فعال ڪنداسين.
ڪوڊ جي ترقي
اهو ٽن حصن ۾ ورهايل آهي، پهريون، آڊيو رڪارڊنگ جنهن لاءِ مون ڪوڊ ورتو آهي geeksforgeeksڇاڪاڻ ته مون کي انهن ڪتابن جي دڪانن جي خبر ناهي. ٻيو، ويسپر سان آڊيو کي ٽيڪسٽ ۾ تبديل ڪرڻ ۽ ٽيون، ان متن جو علاج ۽ RaspberryPi ۾ جواب
آزمائشي مثال ۾ مان صرف هڪ Led سان رابطو ڪرڻ وارو آهيان، ان کي روشني يا ڦوڪيو، پر اسان ان کي پنهنجي ضرورتن مطابق ترتيب ڏيڻ لاءِ اسڪرپٽ ٺاهي سگهون ٿا.
مون کي خبر آهي ته هي هڪ Raspberry Pi 2 آهي ۽ اهو Raspberry Pi 4 کان تمام گهڻو سست هوندو، پر جاچ لاءِ اهو ٺيڪ آهي.
ان کان اڳ توھان حاصل ڪري سگھوٿا اھو ڪم ڪري، توھان کي ھيٺين کي انسٽال ڪرڻو پوندو
#Instalar whisper pip install git+https://github.com/openai/whisper.git sudo apt update && sudo apt install ffmpeg #para que funcione la grabación de audio python3 -m pip install sounddevice --user pip install git+https://github.com/WarrenWeckesser/wavio.git #si vas a instalarlo en la raspberry #dar permisos para usar la GPIO sudo apt install python3-gpiozero sudo usermode -aG gpio <username>
سڀ ڪوڊ
#!/usr/bin/env python3 import whisper import time from gpiozero import LED import sounddevice as sd from scipy.io.wavfile import write import wavio as wv def main (): inicio = time.time() record_audio () model = whisper.load_model("tiny") result = model.transcribe("audio1.wav") words = result["text"].split() for word in words: word = word.replace(',', '').replace('.', '').lower() if word == 'enciende' or 'encender': encender() break if word == 'parpadea' or 'parpadear': parpadear() break fin = time.time() print(fin-inicio) def encender (): LED(17).on() def parpadear (): light = LED(17) while True: light.on() sleep(1) light.off() sleep(1) def record_audio (): # Sampling frequency freq = 44100 # Recording duration duration = 5 # Start recorder with the given values # of duration and sample frequency recording = sd.rec(int(duration * freq), samplerate=freq, channels=2) # Record audio for the given number of seconds sd.wait() # This will convert the NumPy array to an audio # file with the given sampling frequency write("audio0.wav", freq, recording) # Convert the NumPy array to audio file wv.write("audio1.wav", recording, freq, sampwidth=2) main () #dar permisos para usar la GPIO #sudo apt install python3-gpiozero #sudo usermode -aG gpio <username> #Instalar whisper #pip install git+https://github.com/openai/whisper.git #sudo apt update && sudo apt install ffmpeg
مان ان کي جانچڻ جي قابل نه ٿي سگهيو آهيان ڇاڪاڻ ته مون وٽ RaspberryPi لاءِ مائڪرو ايس ڊي ناهي، يا هڪ USB اسپيڪر ڳنڍڻ لاءِ، پر جيئن ئي آئون ڪوشش ڪندس ته ڪجهه غلطي کي درست ڪريان ٿو ته ان کي سلپ ڪرڻ آسان آهي.
قدم قدم جي وضاحت ڪوڊ جي
#!/usr/bin/env python3
شيبانگ ڊوائيس کي ٻڌائڻ لاءِ ته اسان ڪهڙي ٻولي ۾ پروگرام ڪيو آهي ۽ ڪهڙو مترجم استعمال ڪيو وڃي. جيتوڻيڪ اهو معمولي لڳي ٿو، ان کي نه رکڻ سان ڪيترن ئي موقعن تي غلطيون پيدا ٿين ٿيون.
درآمد ٿيل لائبريريون
import whisper import time from gpiozero import LED import sounddevice as sd from scipy.io.wavfile import write import wavio as wv
ماڊل سان ڪم ڪرڻ لاءِ ويس
وقت، ڇاڪاڻ ته مان ان کي استعمال ڪريان ٿو ان وقت کي ڪنٽرول ڪرڻ لاءِ جيڪو اسڪرپٽ تي عمل ڪرڻ ۾ وٺندو آهي، راسبي جي GPIO پنن سان ڪم ڪرڻ لاءِ gpiozero ۽ سائونڊ ڊيوائس، اسڪائپي ۽ واويو آڊيو رڪارڊ ڪرڻ لاءِ
ڪارڪن
مون 4 فنڪشن ٺاهيا آهن:
- بنيادي ()
- روشني ()
- چمڪائڻ ()
- رڪارڊ_آڊيو()
turn on () صرف راسبي جي پن 17 کي وولٽيج ڏئي ٿو جتي اسان ان صورت ۾ ڳنڍيو آهي LED ٽيسٽ ڪرڻ لاءِ
def encender (): LED(17).on()
blink() وانگر آهي on() پر اهو هڪ لوپ جي اندر ان کي آن ۽ آف ڪندي ليڊ بليڪ ڪري ٿو.
def parpadear (): light = LED(17) while True: light.on() sleep(1) light.off() sleep(1)
record_audio() سان اسان آڊيو فائل رڪارڊ ڪندا آهيون
def record_audio (): # Sampling frequency freq = 44100 # Recording duration duration = 5 # Start recorder with the given values # of duration and sample frequency recording = sd.rec(int(duration * freq), samplerate=freq, channels=2) # Record audio for the given number of seconds sd.wait() # This will convert the NumPy array to an audio # file with the given sampling frequency write("audio0.wav", freq, recording) # Convert the NumPy array to audio file wv.write("audio1.wav", recording, freq, sampwidth=2)
Main مکيه فنڪشن آهي، نوٽ ڪريو ته اسان وٽ صرف هڪ شيء آهي جيڪا اسان جي فنڪشن کان ٻاهر آهي اسڪرپٽ جي آخر ۾ main() کي ڪال آهي. اهو طريقو شروع ٿيڻ تي، اهو لائبريري کي درآمد ڪندو ۽ پوء فنڪشن ڪال ڪندو.
def main (): inicio = time.time() record_audio () model = whisper.load_model("tiny") result = model.transcribe("audio1.wav") words = result["text"].split() for word in words: word = word.replace(',', '').replace('.', '').lower() if word == 'enciende' or 'encender': encender() break if word == 'parpadea' or 'parpadear': parpadear() break fin = time.time() print(fin-inicio)
اسان اهو وقت بچائيندا آهيون جنهن تي اسان فنڪشن شروع ڪندا آهيون ۽ پوءِ اسان رڪارڊ آڊيو فنڪشن کي سڏيندا آهيون جيڪو اسان جي هدايتن کي .wav، .mp3 وغيره فائل ۾ رڪارڊ ڪندو جنهن کي اسان بعد ۾ ٽيڪسٽ ۾ تبديل ڪنداسين.
inicio = time.time() record_audio ()
هڪ دفعو اسان وٽ آڊيو هوندو، ويسپر سڏيو ويندو ۽ اسان ان کي ٻڌايو ته جيڪو ماڊل اسان استعمال ڪرڻ چاهيون ٿا، اتي 5 موجود آهن، ۽ اسان ننڍڙا استعمال ڪنداسين، جيتوڻيڪ اهو سڀ کان وڌيڪ غلط آهي ڇو ته اهو تيز ترين آهي ۽ آڊيو آسان هوندو، صرف 3 يا 4 لفظ.
model = whisper.load_model("tiny") result = model.transcribe("audio1.wav")
ان سان اسان وٽ آڊيو کي ٽيڪسٽ ۾ تبديل ڪيو ويو آهي ۽ هڪ متغير ۾ محفوظ ڪيو ويو آهي. اچو ته ان کي ٿورو تبديل ڪريون.
اسان نتيجن کي هڪ فهرست ۾ تبديل ڪندا آهيون آڊيو جي هر هڪ لفظ سان
words = result["text"].split()
۽ سڀڪنھن شيء کي اسان جي ڊوائس سان لهه وچڙ ڪرڻ لاء تيار. هاڻي اسان کي صرف اهي حالتون پيدا ڪرڻ گهرجن جيڪي اسان چاهيون ٿا.
جيڪڏهن آڊيو ۾ لفظ X آهي، Y ڪريو. جيئن ته اسان وٽ لفظ هڪ فهرست ۾ آهن، شرطن کي شامل ڪرڻ تمام آسان آهي
for word in words: word = word.replace(',', '').replace('.', '').lower() if word == 'enciende' or 'encender': encender() break if word == 'parpadea' or 'parpadear': parpadear() break
لڪير
word = word.replace(',', '').replace('.', '').lower()
مان ان کي استعمال ڪريان ٿو آڊيو ۾ لفظن کي لوئر ڪيز ۾ تبديل ڪرڻ ۽ ڪاما ۽ دورن کي ختم ڪرڻ لاءِ. ۽ هن طريقي سان مقابلي ۾ غلطين کان بچڻ
هر هڪ ۾ جيڪڏهن اسان جي چونڊيل لفظن مان ڪنهن به شرط کي پورو ڪيو وڃي، اهو هڪ فنڪشن سڏيندو آهي جيڪو اسان چاهيون ٿا،
هي اهو آهي جتي اسان ان کي هڪ PIN کي چالو ڪرڻ لاءِ چئون ٿا جيڪو هڪ LED کي روشن ڪندو يا ان کي چمڪندو. يا ته ڪجھ ڪوڊ هلائي، يا ڪمپيوٽر کي بند ڪريو.
هي سڀ هڪ بنيادي خيال آهي. هتان کان توهان پروجيڪٽ کي ترقي ڪري سگهو ٿا ۽ ان کي بهتر بڻائي سگهو ٿا جيئن توهان چاهيو. هر ماڻهو ان لاء مختلف استعمال ڳولي سگهي ٿو.
شيون اسان هن montage سان ڪري سگهون ٿا
اهي خيال آهن جيڪي مون وٽ ايندا آهن انهي مان فائدو وٺڻ لاءِ. هڪ دفعو اسڪيلٽن هٿياربند ٿي ويندو آهي، اسان ان کي استعمال ڪري سگهون ٿا هر شيء کي چالو ڪرڻ لاء جيڪو آواز سان ذهن ۾ اچي ٿو، اسان هڪ ريلي کي چالو ڪري سگهون ٿا جيڪو موٽر شروع ٿئي ٿو يا اسان هڪ اسڪرپٽ لانچ ڪري سگهون ٿا جيڪو اسڪرپٽ، اي ميل يا ٻيو ڪجهه به ڪري ٿو.
وسوسن ڇا آهي
ويسپر هڪ آواز جي سڃاڻپ وارو ماڊل آهي، ڪيترن ئي ٻولين سان گڏ ڪم ڪري ٿو ۽ انگريزيء ۾ ترجمو ڪرڻ جي اجازت ڏئي ٿو. اھو اھو آھي جيڪو اسان ڄاڻون ٿا متن کان آواز وارو اوزار، OpenAI ٽيم پاران جاري ڪيل، ڊال-اي جي ٺاھيندڙن.