30 แแแแแแแ แ - 1 แแแแแแแแ แ แแแแแ แแแแแแ แแแจแ แแแแแแ แแ
แแ แกแขแแขแแแจแ แแแแแงแแแแแ, แแฃ แ แแแแ แจแแแฅแแแแแ แแ แแแฃแฅแขแแก แฉแแแแ แแ แแขแแขแแแ, แ แแแแแแแช แกแแแแแแแ แแแ แแแแ แแแแแแ แแแแแแแแแ.
แฐแแแแแแแจแ 10-แแ แแแขแ แแฃแแแ แแแแแฌแแแแแแแ. แกแแกแแแแแแแแ, แ แแ แแแแแแ แแ แแแแแแแ แกแฎแแ แ แแแแแแแแแแแ แฉแแแแแแแ. แฐแแแแแแแแก แฉแแขแแ แแแแก แแแแแแ แแงแ แแแแแแแฅแกแ โแแ แแแแแแกแแ แแแฉแแแแแโ, แกแแแแช แแแแแ แแแแแแ แแแแก แฃแซแแแแแกแ แคแแขแแแแ แแแแแ แจแแแแแ, แแแ แแแแชแแแจแ! (แจแแแแฎแกแแแแแ, แ แแ แแ แแ แแแกแแแแก Intel-แแก แชแแแขแ แแแฃแ แ แแคแแกแ แแแแแแ แแแแก แแแแแ แแแแแแ แแแจแ). แแแแแฌแแแแแแก แแแแชแแ 26 แกแแแแ แแแแแก แแแกแแฌแแ แแ แแ แแแแแก แแแ แฃแแแ แฌแแ แแแแแแแแแ แแแแแกแแแแแ. แชแแแแ แฃแแแ แแขแแกแแแ แแงแ แแแแ แกแแกแแแก แแ แกแแแแแ, แ แแแ แแแแ แฌแแฃแแแแ, แ แแ แงแแแแแคแแ แ แแแแแแแแแ แแงแ แ แแแแฃแ แแ แแแแฎแแ แชแแแแแแฃแแ แแ แแ แแแ แฉแแแแแ แแแแแแแ แแ แแแแแขแแชแแแจแ. แกแแฅแแแแแ, แกแแญแแแแแแ, แกแแญแแแแ, แงแแแแแคแแ แแช แแฅ แแงแ!
แแแ แแ แแแแกแ, Intel-แแ แกแฃแ แแแแแกแแแแแ แฃแแ แฃแแแแแงแ แแแแแ แแแ, Raspberry PI, Neural Compute Stick 2.
แแแแแแแแแก แจแแ แฉแแแ
แแแแแกแฃแคแแแ แคแแ แแแก แฐแแแแแแแแกแแแแก แแแแแแแแแแก แแ แ-แแ แแ แงแแแแแแ แ แแฃแแ แแแฌแแแ แแแแแฌแแแแแก แแ แฉแแแแ. แฉแแแ แแแจแแแแ แแแแแแฌแงแแแขแแ แจแแแแแฅแแแ แแกแแแ แ แแ, แ แแช แฏแแ แแ แแงแ แแ แแแฃแฅแขแจแ, แ แแแแแ แแแแชแฎแแแแแแจแ แแแแฅแแแแแ, แ แแ แแก แซแแแแแ แแแกแแกแแแแแแแแ แแงแ.
แแแแแแแแแแแฃแแ
- แแแแ แแฃแแแ แจแแกแแซแแแแแแแ แจแแแฅแแแแก แแแแแแแแ แแแฃแแ แแแแแ แแแแ, แ แแแแแแช แแแฃแจแแแแแก แ แแแแ แช แฎแแแแ, แแกแแแ แแแแแกแแฎแฃแแแแแแ, แ แแช แกแแแฃแกแขแแก แแแขแแแแก แฃแแแ แแซแแแแแแก.
- แแแแแ แแแก, แ แแแแ แช แฌแแกแ, แแฅแแ แแแฌแ แ แฎแแแแแก แแฃแแฎแ; แแแแ แคแแ แแแแแก แแแกแแคแแ แแ แกแแญแแ แแ แแ แแแ แแแขแ แแแแแ แ; แฎแแแก แแ แแฅแแก แแกแแแ แจแแแฆแฃแแแ.
แแแแแแแแแแ แแ แแแแ: แกแแคแฃแซแแแแ แแแแฆแแ แกแแชแแแ แกแแแแแแขแแก แแแแ. แแฅแแแ แจแแแแซแแแแ แแแแแแแ แแแแฎแแแ แแแแแแ แแแแงแแคแแแแแ แแแฆแแแแแก แกแแแแ แแแแจแ. แแฃ แแ แ-แแ แแ แแแแฎแแแ แแแแแ แฃแแแแงแแคแแแแ แแแแกแแฎแฃแ แแแแ แแ แแฌแงแแแก แขแแแแก แแแแฆแแแแแก, แจแแแแซแแแแ แแแฃแงแแแแแแแแ แแแฃแ แแแแ แแแแแแแกแขแ แแขแแ แก แแแฎแแแ แแแแกแแแแก.
แแ แจแแแแฎแแแแแจแ, แฉแแแ แฃแแแ แแแแแแแขแแ แแแแแแแแแก แฎแแแก แแแแชแแแแ, แแก แแแแแชแแแก แกแแจแฃแแแแแแก แแแแแแกแฎแแแแแ แแแฆแแแแแก แแแแแแจแ แแแแแแ แแแแฎแแแ แแแแแแแกแแแ แแ แแแแแฌแแแแ แแแแแแขแแแ แแแแแแฃแแ แแแแแแแแแกแแแแก. แแแ แแ แแแแกแ, แจแแกแแซแแแแแแ แแฅแแแแ แแแแแ แแแฆแแแแแก แแแแแแจแ แแแแแแแก แฅแชแแแแก แแแแแแแ, แแฃแแแจแ แแ แกแแแฃแแ แแขแแแกแคแแ แแก แจแแคแแกแแแ, แแแ แแแ แแฆแแ แก!
แฉแแแ แแแงแแแแแแแ แแแแฎแแแแแแก แฉแแแแ แแแแแฌแงแแแขแแกแแแแก:
- แกแแแแแแ แแแฌแงแแแแแแแแก แแชแแ แ แแแแ
- แ แแแแฃแ แแ แแจแ แแแแ แแชแแ
- แแแแแแ แคแแกแ
- แแแ แขแแแ แแแกแจแขแแแแ แแแ
แจแแแแแแ, แฉแแแ แแแ แฉแแแ Raspberry Pi 3 c แกแแแแแแ แแแฌแงแแแแแแแแ
แแฅ แแแแจแแแแแแแแแแ NCS-แแก แแ แแ แแแแจแแแแแแแแแ แแแฎแแกแแแแแแแแก แแฆแแแจแแแ - แแก แกแแฃแแแแแกแแ แแฃแจแแแแก แกแขแแแแแ แขแฃแแ CNN แแ แฅแแขแแฅแขแฃแ แแแแ, แแแแ แแ แแฃ แแฅแแแ แแญแแ แแแแแ แแแแแแแก แแแจแแแแ แแแกแแ แแแ แแแแฃแแ แคแแแแแแ, แแแจแแ แแแแแ แแแแแแ แแแแแก แแแขแแแแแแชแแแก.
แแฎแแแแ แแ แแ แแชแแ แ แ แแ แแ แแก แแแกแแแแแแแแแ: แแฅแแแ แฃแแแ แแแฆแแ แแแแ แแคแแแ. แฉแแแฃแแแแ แแแ USB แแแแ แแคแแแ แแแแแแแแแ, แแแแ แแ RPI-แกแแแ แแ แแแ แแแ แแแ แแ แแแแแแงแฃแ แแแ. แแแแ แแ แแฅแแช แแ แแแแแกแแแแแ แกแแขแงแแแกแแขแงแแแ "แแแฎแแแแแแ แแแแก". แฎแแแก แฉแแกแแฌแแ แแ, แฉแแแ แแแแแแฌแงแแแขแแ แแแแแแแงแแแแ Voice Bonnet แแแคแ แแแแ แแแแแแ
แฉแแแแขแแแ แแแ Raspbian-แแแ
arecord -d 5 -r 16000 test.wav
แแแฃแงแแแแแแแแ แฃแแแ แแฆแแแแจแแ, แ แแ แแแแ แแคแแแ แซแแแแแ แแแ แซแแแแแแ แแ แแ แแแ แแแ แแฆแแฅแแแแก แฎแแแฃแ แก. แแแแก แแแแแกแแกแฌแแ แแแแแ แแแแแแแแแ alsamixer-แแ, แแแ แฉแแแ Capture devices แแ แจแแแแแชแแ แแ แจแแงแแแแแก แกแแแแแแแก แแแแ 50-60%-แแแ.
แแแ แแฃแกแก แแแแแแแแ แคแแแแแ แแ แงแแแแแคแแ แ แฏแแแแ, แจแแแแซแแแแ แกแแฎแฃแ แแแแแแช แแ แแแฎแฃแ แแ
แแแแแแแขแแ แแก แฆแแแแแแก แแแแแขแแแ
AIY Voice Kit-แแก แแแจแแ แแแแกแแก แแแแฎแกแแแก, แ แแ แแ แแก RGB แฆแแแแแ, แ แแแแแก แฃแแแแ แแแแแแแแ แแแแขแ แแแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แกแแจแฃแแแแแแ. แฉแแแ แแแซแแแ โGoogle AIY Ledโ-แก แแ แแแแฃแแแแ แแแแฃแแแแขแแชแแแก:
แ แแขแแ แแ แแแแแแงแแแแ แแก แฆแแแแแ แแฆแแแ แแแฃแแ แแแแชแแแก แกแแฉแแแแแแแแ, แฉแแแ แแแแฅแแก แแฎแแแแ 7 แแแแกแ แแ แฆแแแแแก แแฅแแก 8 แคแแ แ, แกแแแแแ แแกแแ!
แฉแแแ แฆแแแแแก แแฃแแแแจแแ แแแ GPIO-แก แแแจแแแแแแ Voice Bonnet-แก, แแขแแแ แแแแ แกแแญแแ แ แแแแแแแแแแแแก (แแกแแแ แฃแแแ แแแแแกแขแแแแ แแแฃแแแ แแแแแฌแแแแแแก แแแแแแแฅแขแจแ AIY แแ แแแฅแขแแแแแแ)
from aiy.leds import Leds, Color
from aiy.leds import RgbLeds
แแแแแ แจแแแฅแแแแ แแแฅแขแ, แ แแแแแจแแช แแแแแแฃแ แแแแชแแแก แแฅแแแแ แจแแกแแแแแแกแ แคแแ แ RGB Tuple-แแก แแ aiy.leds.Leds แแแแกแแก แแแแแฅแขแแก แกแแฎแแ, แ แแแแแก แแแจแแแแแแแแช แฉแแแ แแแแแแแฎแแแแ แคแแ แก:
led_dict = {'neutral': (255, 255, 255), 'happy': (0, 255, 0), 'sad': (0, 255, 255), 'angry': (255, 0, 0), 'fearful': (0, 0, 0), 'disgusted': (255, 0, 255), 'surprised': (255, 255, 0)}
leds = Leds()
แแ แแแแแก, แแแแชแแแก แงแแแแแ แแฎแแแ แแ แแแแแแแก แจแแแแแ, แฉแแแ แแแแแแแฎแแแแ แฆแแแแแแก แคแแ แก แแแก แจแแกแแแแแแกแแ (แแแกแแฆแแแแ).
leds.update(Leds.rgb_on(led_dict.get(classes[prediction])))
แฆแแแแแ, แแแฌแแ!
แฎแแแ แแฃแจแแแแ
แฉแแแ แแแแแแแงแแแแแ pyaudio-แก แแแแ แแคแแแแแแ แกแขแ แแแแแแแก แแ webrtcvad-แแก แแแแแกแแฆแแแแ แฎแแแฃแ แแก แแแกแแคแแแขแ แแ แแ แฎแแแก แแแแกแแชแแแแแ. แแแ แแ แแแแกแ, แฉแแแ แจแแแฅแแแแ แ แแแก, แ แแแแแกแแช แแกแแแฅแ แแแฃแแแ แแแแแแแขแแแ แแ แฌแแแจแแแ แฎแแแแแ แแแแแแฌแแ แแแก.
แแแแแแแแ webrtcvad-แก แแฅแแก แแแฌแแแแแฃแแ แคแ แแแแแแขแแก แแแแแแ แจแแแฆแฃแแแ - แแก แฃแแแ แแงแแก แขแแแ 10/20/30ms, แฎแแแ แแแแแแแก แกแฌแแแแแแ แแแแชแแแแแก แแแแชแแแแแกแแแแก (แ แแแแ แช แแแแแแแแแแแ แแแแแแแแ) แแแแฎแแ แชแแแแแ 48kHz แแแแแชแแแแ แแแแแแ, 48000ร20ms/1000ร1(แแแแ)=960 แแแแขแแก แแแแแก แแแญแ แแแแก แแแแแฆแแแ. Webrtcvad แแแแแ แฃแแแแก True/False แแแแแแฃแ แแ แแแฌแแแก, แ แแช แจแแแกแแแแแแแ แแแแแจแ แฎแแแก แแ แกแแแแแแก แแ แแ แแ แกแแแแแแก.
แแแแแแฎแแ แชแแแแแ แจแแแแแแ แแแแแแ:
- แกแแแก แแแแแแแขแแแ แแ แแแฌแแแแแก, แกแแแแช แแ แแก แฎแแ, แแฃ แฎแแ แแ แแ แแก, แแแจแแ แแแแแขแแแ แชแแ แแแแ แแแฌแแแแแแแแก แแ แแชแฎแแแแก.
- แแฃ แชแแ แแแแ แแแฌแแแแแแแแก แแ แแชแฎแแแแ แแ แแก >=30 (600 ms), แแแจแแ แแฃแงแฃแ แแแ แแแแ แแแแแ แแแฌแแแแแแแแก แกแแแก แแแแแก; แแฃ แแก แแ แแก >250, แแแจแแ แแแแแขแแแ แ แแแจแ, แแฃ แแ แ, แแแแแแฉแแแ, แ แแ แกแแแ แซแ แฉแแแแฌแแ แ แแ แแ แแก แกแแแแแ แแกแ แแแแกแแแแแก, แ แแ แแแแแแก แแแแฌแแแแก แกแแแแแ แแก แแแแแขแแคแแชแแ แแแ.
- แแฃ แชแแ แแแแ แแแฌแแแแแแก แแ แแชแฎแแแแ แแแแแ < 30-แแ, แฎแแแ แแแแ แแแแแ แแแแแแแแก แกแแแก แแแแ แแญแแ แแแแก 300-แก, แแแจแแ แฉแแแ แแแแแแแขแแแ แคแ แแแแแแขแก แ แแแจแ แฃแคแ แ แแฃแกแขแ แแ แแแแแแแกแแแแก. (แ แแแแแ แแแแชแแแแ แแ แแแ แแแแแแแแแแแจแ แแชแแแแแ)
def to_queue(frames):
d = np.frombuffer(b''.join(frames), dtype=np.int16)
return d
framesQueue = queue.Queue()
def framesThreadBody():
CHUNK = 960
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 48000
p = pyaudio.PyAudio()
vad = webrtcvad.Vad()
vad.set_mode(2)
stream = p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK)
false_counter = 0
audio_frame = []
while process:
data = stream.read(CHUNK)
if not vad.is_speech(data, RATE):
false_counter += 1
if false_counter >= 30:
if len(audio_frame) > 250:
framesQueue.put(to_queue(audio_frame,timestamp_start))
audio_frame = []
false_counter = 0
if vad.is_speech(data, RATE):
false_counter = 0
audio_frame.append(data)
if len(audio_frame) > 300:
framesQueue.put(to_queue(audio_frame,timestamp_start))
audio_frame = []
แแ แแ แแแซแแแแแ แฌแแแแกแฌแแ แแแแแแแแแฃแแ แแแแแแแแ แกแแฏแแ แ แแแแแแจแ, แแแแแแแ github-แแ, Google-แแ, แแแแ แแ แแแฎแกแแแแแ, แ แแ แฉแแแ แแแแฅแแก แจแแแฆแฃแแแ แแแแแงแแแแแฃแแ แแ แฅแแขแแฅแขแฃแ แแแ. แแก แกแแแแแแ แ แแฃแแ แแแฌแแแแ, แ แแแแแ แแฅแแแ แฃแแแ แจแแแแแฌแแแ แแแแแแแแ แแฅแแแแก แจแแงแแแแแก แแแแแชแแแแแแ แแ แแแ แแ แแแแกแ, แแแแแแงแแแแแ แแกแแแ OpenVINO-แก แจแแแ แคแแ แแแขแจแ - IR (แจแฃแแแแแฃแ แ แฌแแ แแแแแแแแแแแแ). แฉแแแ แแชแแแแ แแแแฎแแแแแแ 5-7 แกแฎแแแแแกแฎแแ แแแแแฌแงแแแขแ github-แแกแแแ แแ แแฃ แแแแชแแแแแก แแแแชแแแแแก แแแแแแ แแแจแแแแ แแแฃแจแแแแแแ, แแแจแแ แฎแแแก แแแแชแแแแแ แฃแคแ แ แแแขแฎแแแก แแแแแแฌแแ แแแแแแ - แแกแแแ แแงแแแแแแ แฃแคแ แ แ แแฃแ แแ แฅแแขแแฅแขแฃแ แแแก.
แฉแแแ แงแฃแ แแแฆแแแแก แแแแแฎแแแแแแ แจแแแแแแแ:
- แแแแชแแแแ แฎแแแแแ -
https://github.com/alexmuhr/Voice_Emotion
แแก แแฃแจแแแแก แจแแแแแแ แแ แแแชแแแแ: แแฃแแแ แแญแ แแแ แแแ แแแแฃแแ แแแแแก แแแกแแแแแแ, แแแแแแฃแแ แแ แแแกแแแแกแแแแก แฉแแแ แแแ แฉแแแMFCC แแ แจแแแแแ แฌแแ แฃแแแแแแ แแกแแแ CNN-แก แจแแงแแแแแก แกแแฎแแ - แฒฎแแแก แแแแชแแแแ -
https://github.com/linhdvu14/vggvox-speaker-identification
แแฅ MFCC-แแก แแแชแแแแ แแแฃแจแแแแ แกแแแฅแขแ แแแ แแแแ, FFT-แแก แจแแแแแ แกแแแแแแก แแแฌแแแแ CNN-แก, แกแแแแช แแแแแกแแแแแแ แแแฆแแแ แฎแแแก แแแฅแขแแ แฃแ แฌแแ แแแแแแแแก.
แจแแแแแ แแแกแแฃแแ แแแ แแแแแแแแแก แแแแแแ แขแแชแแแแ, แแแฌแงแแแฃแแ แแแแ แแแ. OpenVINO แแแแชแแแก แ แแแแแแแแ แแแแฃแแก:
- แแแฎแกแแแแ แแแแแแแก แแแแแแ แแ, แแแแแแแแ, แ แแแแแแแแแแแช แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แจแแแแแแก แแฅแแแแก แแ แแแฃแฅแขแจแ
- Model Optimzer, แ แแแแแก แฌแงแแแแแแแแช แจแแแแซแแแแ แแแแแแ แแแแแแงแแแแแ แกแฎแแแแแกแฎแแ แฉแแ แฉแ แคแแ แแแขแแแแแแ (Tensorflow, ONNX แแ แ.แจ.) แจแฃแแแแแฃแ แ แฌแแ แแแแแแแแก แคแแ แแแขแจแ, แ แแแแแแแช แฉแแแ แจแแแแแแแจแ แแแแฃแจแแแแแ.
- Inference Engine แกแแจแฃแแแแแแก แแแซแแแแ แแแฃแจแแแ แแแแแแแแ IR แคแแ แแแขแจแ Intel แแ แแชแแกแแ แแแแ, Myriad แฉแแแแแกแ แแ Neural Compute Stick แแแแฉแฅแแ แแแแแแแ
- OpenCV-แแก แงแแแแแแ แแคแแฅแขแฃแ แ แแแ แกแแ (Inference Engine-แแก แแฎแแ แแแญแแ แแ)
แแแแแแฃแแ แแแแแแ IR แคแแ แแแขแจแ แแฆแฌแแ แแแแ แแ แ แคแแแแแ: .xml แแ .bin.
แแแแแแแแ แแแ แแแแฅแแแแแ IR แคแแ แแแขแจแ Model Optimizer-แแก แกแแจแฃแแแแแแ แจแแแแแแแแแ แแ:python /opt/intel/openvino/deployment_tools/model_optimizer/mo_tf.py --input_model speaker.hdf5.pb --data_type=FP16 --input_shape [1,512,1000,1]
--data_type
แกแแจแฃแแแแแแก แแแซแแแแ แแแ แฉแแแ แแแแแชแแแแ แคแแ แแแขแ, แ แแแแแแแช แแแแแแ แแแฃแจแแแแแก. FP32, FP16, INT8 แแฎแแ แแแญแแ แแแแ. แแแแแชแแแแ แแแขแแแแแฃแ แ แขแแแแก แแ แฉแแแแ แจแแแซแแแแ แแแแแ แแแก แแแ แแ แจแแกแ แฃแแแแ.
--input_shape
แแแฃแแแแแแก แจแแงแแแแแก แแแแแชแแแแแแก แแแแแแ. แแแกแ แแแแแแแฃแ แแ แจแแชแแแแก แจแแกแแซแแแแแแแ, แ แแแแ แช แฉแแแก, แแ แแก C++ API-แจแ, แแแแ แแ แฉแแแ แแกแ แจแแ แก แแ แแแแแฎแแ แแ แแ แฃแแ แแแแ แแแแแคแแฅแกแแ แแ แแก แแ แ-แแ แ แแแแแแแ.
แจแแแแแแ, แจแแแแชแแแแ แฉแแขแแแ แแแ แฃแแแ แแแแแงแแแแแแ แแแแแแ IR แคแแ แแแขแจแ DNN แแแแฃแแแก แแแจแแแแแแ OpenCV-แจแ แแ แแแแแแแขแแแแ แแแก.import cv2 as cv emotionsNet = cv.dnn.readNet('emotions_model.bin', 'emotions_model.xml') emotionsNet.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)
แแแแ แฎแแแ แแ แจแแแแฎแแแแแจแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแแแแกแแแแ แแแ แแแแแแแแแแ Neural Compute Stick-แแ, แซแแ แแแแแ แแแแแแแแแแ แฎแแ แชแแแแแแแ แแ แแชแแกแแ แแ, แแแแ แแ Raspberry Pi-แก แจแแแแฎแแแแแจแ แแก แแ แแแฃแจแแแแแก, แแแแญแแ แแแแแ แฏแแฎแ.
แจแแแแแแ, แแแแแแ แแกแแแแ: แฉแแแ แแงแแคแ แฉแแแแก แแฃแแแแก แแแ แแแแฃแแ แแแแแก แคแแแฏแ แแแก (แฉแแแแแแแก แแก แแ แแก 0.4 แฌแ), แแแฅแชแแแ แแแแแแฃแ แแ แคแแแฏแแ แแก MFCC-แจแ, แ แแแแแกแแช แจแแแแแ แแแฌแแแแแ แฅแกแแแจแ:
emotionsNet.setInput(MFCC_from_window) result = emotionsNet.forward()
แจแแแแแแ, แแแแฆแแ แงแแแแแแ แแแแ แชแแแแแฃแแ แแแแกแ แงแแแแ แคแแแฏแ แแกแแแแก. แแแ แขแแแ แแแแแกแแแแแแ, แแแแ แแ แฐแแแแแแแแกแแแแก แแฅแแแ แแ แแญแแ แแแแแ แ แแแแ แซแแแแแ แแแกแขแ แแฅแขแฃแแ แแแแแแฅแแ, แแฎแแแแ แแ แจแแแแฎแแแแแจแ, แแฃ แแ แ แแแฅแแ. แฏแแ แแแแแ แแแแ แ แแแแฅแแก แกแแแฃแจแแ, แแแแขแแ แแแแแแแแแ โ แฎแแแก แแแแชแแแแแก แจแแแแฎแแแแ. แกแแญแแ แแ แ แแแแ แกแแฎแแก แแแแแชแแแแ แแแแแก แจแแฅแแแ, แ แแแแแจแแช แฌแแแแกแฌแแ แฉแแฌแแ แแแ แฎแแแแแก แกแแแฅแขแ แแแ แแแแแ แจแแแแแฎแแแ. แแแแแแแแ แชแแขแ แแ แ แ แฉแแแ, แแ แกแแแแแฎแก แแแฅแกแแแแแฃแ แแ แแแแแแแแ แแแ.
แแแ แซแแ, แฉแแแ แแฅแแแแ แกแแ แแแขแก แฎแแแก แแแแแแฌแแ แแก แฉแแกแแฌแแ แแ (แแแ แแฃแจแแแแก แแกแแแ, แ แแแแ แช แแแแแ แแฆแฌแแ แแแ, แแฎแแแแ แแแแแแแขแฃแ แแแแ แจแแฌแงแแแขแแก แจแแแแฎแแแแแจแ แจแแแแแฎแแแก แฎแแแก แคแแแแจแ).
แฒแแแ แแชแแแแ:
python3 voice_db/record_voice.py test.wav
แฉแแแ แฉแแแฌแแ แ แ แแแแแแแแ แแแแแแแแแก แฎแแแก (แฉแแแแก แจแแแแฎแแแแแจแ, แแฃแแแแก แกแแแ แฌแแแ แแก)
แจแแแแแ, แแแแแแฃแแ แฉแแฌแแ แแแ แฎแแแกแแแแก แแแกแ แฃแแแแ แกแฌแ แแค แคแฃแ แแแก แขแ แแแกแคแแ แแแชแแแก, แแแฆแแแ แกแแแฅแขแ แแแ แแแแก แแ แแแแแฎแแแ แแแก แแฃแแแแฃแ แ แแแกแแแแก แกแแฎแแ (.npy):for file in glob.glob("voice_db/*.wav"): spec = get_fft_spectrum(file) np.save(file[:-4] + '.npy', spec)
แแแฌแแ แแแแแแ แคแแแแจแ
create_base.py
แจแแแแแแ, แ แแแแกแแช แแแแแแ แกแแ แแแขแก แแแฌแแ แแแแแ, แแแแแแแแแ แแแแแฆแแแ แฉแแจแแแแแแแก แแ แกแแแฅแขแ แแแ แแแแแแแแ:for file in glob.glob("voice_db/*.npy"): spec = np.load(file) spec = spec.astype('float32') spec_reshaped = spec.reshape(1, 1, spec.shape[0], spec.shape[1]) srNet.setInput(spec_reshaped) pred = srNet.forward() emb = np.squeeze(pred)
แแแแฆแแ แแแฃแแ แกแแแแแแขแแแแ แฉแแจแแแแแแก แแแฆแแแแก แจแแแแแ, แฉแแแ แจแแแซแแแแ แแแแแกแแแฆแแ แแ แแแก แแแฃแแแแแก แแก แแแกแแแฃแกแฃแ แ แแแแซแแแแก แแฆแแแแ แแแกแแแแแแ แแแแแชแแแแ แแแแแก แงแแแแ แฎแแแแแ (แ แแช แฃแคแ แ แแชแแ แแ, แแแ แฃแคแ แ แกแแแแ แแฃแแแ) - แแแแแกแแแแก แฉแแแ แแแงแแแแแ แแแ แแแ แก 0.3-แแแ):
dist_list = cdist(emb, enroll_embs, metric="cosine") distances = pd.DataFrame(dist_list, columns = df.speaker)
แแแกแแกแ แฃแ, แแแแแ แแฆแแแแจแแ, แ แแ แแแกแแแแแก แกแแฉแฅแแ แ แแงแ แกแฌแ แแคแ แแ แจแแกแแซแแแแแแ แแแฎแแแ แแแแแ 1-2 แแแแแแแก แแแแแขแแแ (แแแแฃแจแแ 7 แฌแแแแก แฎแแแแ แซแแแแแแแกแแแแก แแแกแญแแ แแ 2.5 แแแกแแแแ). แฉแแแ แแฆแแ แแแฅแแแแ แแ แ แแฎแแแ แแแแแแแแแก แแแกแแแแขแแแแแ แแ แแ แแแแขแแ แแแฃแแ แแแงแแแแ แแแ แแแแแแแชแแแก แแ แแขแแขแแแแก แแแฌแแ แแแ.
แแแ แแแแแแแชแแ
แแแแจแแแแแแแแแ แแฃแแฅแขแ: แฉแแแแแแ แแ แแแ แแแฆแแแ แ แแฃแขแแ แก แกแแฎแแแแแ แแ แแแงแแแแแ แฉแแแแก แแแแแแฃแ แฅแกแแแก, แแก แแแแฎแแแ แแแ แแแฌแงแแแแแแแแกแ แแ แแแแขแแแแแแก แฅแกแแแจแ แแแแแแจแแ แแแแจแ.
Backend แแ แแก แแแแแแแ แแแแแแแ แจแแขแงแแแแแแแแก แแ แฎแ แฌแแแ แแ Raspberry Pi-แก แจแแ แแก, แ แแแแแแช แแแคแฃแซแแแแฃแแแ websocket แขแแฅแแแแแแแแแ (http over tcp แแ แแขแแแแแ).
แแแ แแแแ แแขแแแ แแ แแก แแแแฃแจแแแแแฃแแ แแแคแแ แแแชแแแก แแแฆแแแ แแแแแแแ, แแแฃ json-แจแ แจแแคแฃแแฃแแ แแ แแแแแแแ แแแแแแ, แ แแแแแแแช แแแแฎแแแ แแแแแชแแแแ แแแแแจแ แแแแ แแแแแแฃแ แแแแก แแแฎแแแแ แจแ, แ แแแ แแแฎแแแก แกแขแแขแแกแขแแแแก แแแแแ แแ แแแ แแแแฎแแแ แแแแแก แแแแชแแฃแ แ แคแแแแก แจแแกแแฎแแ แแ แแแ แแแแแกแแแแก. แแก แแแแแขแ แจแแแแแ แแแแแแแแแ แคแ แแแขแแแแจแ, แ แแแแแแช แแงแแแแแก แแแแแฌแแ แแก แแ แแฆแแแก แแแแแขแแแก แแแแกแแแแขแแก แแแแ แฌแแ แขแแแแแแ. แแแแแ backend แแแฅแแแแแแ แแแแแฃแแแ แแแแแแแแก แแแแแ; แแก แแ แฉแแฃแแแ แแแแขแแ, แ แแ แแแ แแแ แจแแแคแแ แแแ แแกแแแฅแ แแแฃแ แแแแชแแแแแก, แ แแแแแแกแแช แแแ แฃแขแแแแแ แแแ แแแ แฃแแแแแแแแแแแ.
แกแแแแแแ แฌแแ แขแแแแ แฌแแแแแแกแแก แแแแฎแแแ แแแแแ แ แแแแกแขแ แแ แแแแ แแ แจแแแแก แกแขแ แฃแฅแขแฃแ แแจแ, แจแแแแแ แแแแฆแแแ แแแกแ แจแแขแงแแแแแแแ. แแแแฎแแแ แแแแแแช แแ แจแแขแงแแแแแแแแช แจแแแแก แกแแแ แแ แฐแแแจแ, แกแแแแแแแช แจแแขแงแแแแแแแแแ แฃแแแ แแแแแแแแแ แจแแแแแแ (แแแแแฌแแ แแ แคแ แแแขแแ), แฎแแแ แแฃ แแแแฎแแแ แแแแแ แแแฎแฃแ แแแก แแแแจแแ แก (แแแแ แแ แฌแแแ), แแแจแแ แแแกแ แแแแแฌแแ แ แฃแฅแแแแแ แแ แแก แแแแฆแแแฃแแแ. แแแ แ.
แฉแแแ แแแแแแแแแ แแแแจแแ แก แฃแแแแแแFront-end แแ แแก JavaScript-แจแ แแแฌแแ แแแ แแแ แแแแแแแชแแ React แแแแแแแแแแแก แแแแแงแแแแแแ, แ แแแ แแแแฉแฅแแ แแก แแ แแแแแแ แขแแแแก แแแแแแแแ แแแแก แแ แแชแแกแ. แแ แแแแแแแชแแแก แแแแแแแ แแแแแแแแฃแแ แแแแแชแแแแแแก แแแแฃแแแแแแชแแ แฃแแแแ แแฎแแ แแก แแ แแแ แแแแแ Raspberry Pi-แแ แแแจแแแแฃแแ แแแแแ แแแแแแแก แแแแแงแแแแแแ. แแแแ แแก แแฅแแก แกแแฅแชแแฃแ แ แแแ แจแ แฃแขแแแแชแแ, แ แแแแแแช แแแแฎแแ แชแแแแแแฃแแแ แ แแแฅแข-แ แแฃแขแแ แแก แแแแแงแแแแแแ, แแแแ แแ แแแขแแ แแกแแก แแแแแแ แ แแแแ แแ แแ แแก แแแแแแ แ แแแแ แแ, แกแแแแช แแแแแชแแแแ แฃแฌแงแแแขแ แแแแแแ แแแแฆแแแ แ แแแแฃแ แแ แแจแ แกแแ แแแ แแแแ WebSocket แขแแฅแแแแแแแแก แแแแแงแแแแแแ. Raspberry Pi แแแแแชแแแแก แฎแแแก, แแแแแแก แแแฃแแแแแก แแฃ แแ แ แแแแแ แแขแฃแ แแแแแแแแก แ แแแแกแขแ แแ แแแฃแแ แแแแแชแแแแ แแแแแแแ แแ แฃแแแแแแแก แแแแแแขแก แแแแแแแแแก แกแแแก. แแแแแแขแ แแฉแแแแแแก แฃแแฎแแแก แจแแกแแแแแแก แแแแแชแแแแแก, แแฉแแแแแแก แแ แแแแแแแแแก แแแแขแแ แก, แ แแแแแแช แกแแแแ แแฃแแแ แกแแฃแแ แแแแ แแแแ แแคแแแจแ, แแกแแแ แแแแชแแแก, แ แแแแแแแช แแก แฌแแ แแแแฅแแแแก แกแแขแงแแแแก.
แกแแฌแงแแกแ แแแแ แแ แแแแแฎแแแแฃแแ แแ แแแแแแแแแแแแกแแแแ
แจแแฃแซแแแแแแ แแงแ แงแแแแแคแ แแก แแแกแ แฃแแแแ, แ แแแแ แช แแแแแแแแแ แแงแ, แฃแแ แแแแ แแ แ แแ แแแฅแแแแ, แแแแขแแ แแแแแแ แ แแแแแ แแแแแจแ แแงแ, แ แแ แงแแแแแคแแ แ แแแฃแจแแแแแแ. แแ แแแแแขแแชแแแแ แแกแแฃแแ แแก แแแแแ, แแฃ แ แแแแ แแฃแจแแแแก แงแแแแแคแแ แ, แ แ แแแแแแแแ แแแฆแแก, แ แ แแ แแแแแแแแ แจแแแฅแแแแ. แจแแแแแแ แแงแ แแแแ แแแฌแแแ - แแฅแกแแแ แขแแแ แจแแแแฎแแแแแ แแแแแแแแแ แแแแฎแจแ แแ แแแฃแแฎแแแแแแแ แแแแแแฃแ แแฃแแแก แกแแแฃแจแแ แแ แแขแแขแแแแก แแแกแแแแแแแแ แแแแแ. แแแแแช แแแแแแกแแแก แแแแฎแแแแ, แงแแแแแ แแแแแก แแฎแ แแ แฃแแแกแฃแฎแ, แแแแขแแแแ แแแขแแแแก แแแ แแ แงแแแแแคแแ แ แแกแ แแฃแจแแแแแ, แ แแแแ แช แแแกแแแแแแแแ แแงแ.
แแแแ แแแแแชแแ แแฆแแแแจแแ, แ แแ แฉแแแแ แแแแแฌแงแแแขแแก แแแแแแแ แฆแแ แแแฃแแแแ แแงแ $150:
- Raspberry Pi 3 ~ 35$
- Google AIY Voice Bonnet (แจแแแแซแแแแ แแแฆแแ แกแแแแแ แแก แกแแคแแกแฃแ แ) ~ 15$
- Intel NCS 2 ~ 100$
แ แแแแ แแแแแฃแแฏแแแแกแแ:
- แแแแแแงแแแแ แ แแแแกแขแ แแชแแ แแแแแแขแแกแแแ - แกแแฎแแแแ แฌแแแแแแฎแแ แขแแฅแกแขแ, แ แแแแแแช แแแแแ แแ แแแฃแแแ แจแแแแฎแแแแแ
- แแแแแแขแแ แแแแแ แ แแแแแแแแ แแแแแแ: แจแแแแซแแแแ แฎแแแ แแแแกแแแฆแแ แแ แกแฅแแกแ แแ แแกแแแ
- แแ แแแ แแฃแแแ แแฆแแ แแแแแแก แฎแแแแแก แแแแแงแแคแ (แแแแ แแแแชแแ)
แกแแชแแแ:
https://github.com/vladimirwest/OpenEMO
แแแฆแแแแแแ, แแแแ แแ แแแแแแแ แแแ แแแ แแแแกแแกแ แฃแแก, แแแแแ แแแแแแแ แแแแแแฃแฎแแแ แแ แแแแแแแขแแ แแแก แแ แแแแแฌแแแแแแก. แกแฎแแ แแฃแแแแแแก แแ แแแฅแขแแแก แจแแ แแก, แฉแแแ แแแ แแแแ แแแแแฌแแแแ แฃแคแแกแ แแแ แแแ แแแแก แแแแแแแแแก แแแแแขแแ แแแแแก แแแแแฌแงแแแขแ. แฉแแแแแแแก แแก แแงแ แแ แแแฃแฅแขแจแ แฉแแซแแ แแแกแ แแ แแแแแแแแ แแแแก แซแแแแแ แแแแแ แ แแแแแชแแแแแแ. แแแแแแแแแแ, แ แแ แฃแคแ แ แแ แฃแคแ แ แกแแแแขแแ แแกแ แฆแแแแกแซแแแแแแ แแแแแแ แแแแ แ แแแแแแแแจแ, แแแ แจแแ แแก แฎแแแแแแฃแ แ แแแขแแแแฅแขแแก แแแแแแ.
แฌแงแแ แ: www.habr.com