FM 项目中语音分类的 本地数据训练和识别
wangzhibo
2022-03-08 b82eb705b3b6da72249efd6c61e3bab8b85aa319
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
ʲôÊÇinotify£º
 
  InotifyÊÇÒ»¸öʼþÇý¶¯µÄ֪ͨ»úÖÆ£¬Inotify Ìṩһ¸ö¼òµ¥µÄAPI£¬Ê¹ÓÃ×îСµÄÎļþÃèÊö·û£¬²¢ÇÒÔÊÐíϸÁ£¶È¼à¿Ø¡£Óë inotify µÄͨÐÅÊÇͨ¹ýϵͳµ÷ÓÃʵÏÖ¡£¿ÉÓõĺ¯ÊýÈçÏÂËùʾ£º
  inotify_init  ÊÇÓÃÓÚ´´½¨Ò»¸öinotifyʵÀýµÄϵͳµ÷Ó㬲¢·µ»ØÒ»¸öÖ¸Ïò¸ÃʵÀýµÄÎļþÃèÊö·û¡£
  inotify_init1  Óëinotify_initÏàËÆ£¬²¢´øÓи½¼Ó±êÖ¾¡£Èç¹ûÕâЩ¸½¼Ó±ê־ûÓÐÖ¸¶¨£¬½«²ÉÓÃÓëinotify_initÏàͬµÄÖµ¡£
  inotify_add_watch Ôö¼Ó¶ÔÎļþ»òÕßĿ¼µÄ¼à¿Ø£¬²¢Ö¸¶¨ÐèÒª¼à¿ØÄÄЩʼþ¡£±êÖ¾ÓÃÓÚ¿ØÖÆÊÇ·ñ½«Ê¼þÌí¼Óµ½ÒÑÓÐµÄ¼à¿ØÖУ¬ÊÇ·ñÖ»Óз¾¶´ú±íÒ»¸öĿ¼²Å½øÐÐ¼à¿Ø£¬ÊÇ·ñҪ׷×Ù·ûºÅÁ´½Ó£¬ÊÇ·ñ½øÐÐÒ»´ÎÐÔ¼à¿Ø£¬µ±Ê×´Îʼþ³öÏÖºó¾ÍÍ£Ö¹¼à¿Ø¡£
  inotify_rm_watch ´Ó¼à¿ØÁбíÖÐÒÆ³ö¼à¿ØÏîÄ¿¡£
  read ¶ÁÈ¡°üº¬Ò»¸ö»òÕß¶à¸öʼþÐÅÏ¢µÄ»º´æ¡£
  close ¹Ø±ÕÎļþÃèÊö·û£¬²¢ÇÒÒÆ³ýËùÓÐÔÚ¸ÃÃèÊö·ûÉϵÄËùÓÐ¼à¿Ø¡£µ±¹ØÓÚijʵÀýµÄËùÓÐÎļþÃèÊö·û¶¼¹Ø±Õʱ£¬×ÊÔ´ºÍϲã¶ÔÏó¶¼½«ÊÍ·Å£¬ÒÔ¹©ÄÚºËÔÙ´ÎʹÓá£
Òò´Ë£¬µäÐÍµÄ¼à¿Ø³ÌÐòÐèÒª½øÐÐÈçϲÙ×÷£º
 
  Ê¹Óàinotify_init ´ò¿ªÒ»¸öÎļþÃèÊö·û
  Ìí¼ÓÒ»¸ö»òÕß¶à¸ö¼à¿Ø
  µÈ´ýʼþ
  ´¦Àíʼþ£¬È»ºó·µ»Ø²¢µÈ´ý¸ü¶àʼþ
  µ±¼à¿Ø²»Ôٻʱ£¬»òÕß½Óµ½Ä³¸öÐźÅÖ®ºó£¬¹Ø±ÕÎļþÃèÊö·û£¬Çå¿Õ£¬È»ºóÍ˳ö¡£
pyinotify°üµÄ°²×°
 
?
1
2
3
git clone https://github.com/seb-m/pyinotify.git
cd pyinotify/
python setup.py install
 
Inotify ¿ÉÒÔ¼àÊÓµÄÎļþϵͳʼþ°üÀ¨£º
 
IN_ACCESS£¬¼´Îļþ±»·ÃÎÊ
IN_MODIFY£¬Îļþ±»write
IN_ATTRIB£¬ÎļþÊôÐÔ±»Ð޸ģ¬Èçchmod¡¢chown¡¢touchµÈ
IN_CLOSE_WRITE£¬¿ÉдÎļþ±»close
IN_CLOSE_NOWRITE£¬²»¿ÉдÎļþ±»close
IN_OPEN£¬Îļþ±»open
IN_MOVED_FROM£¬Îļþ±»ÒÆ×ß,Èçmv
IN_MOVED_TO£¬Îļþ±»ÒÆÀ´£¬Èçmv¡¢cp
IN_CREATE£¬´´½¨ÐÂÎļþ
IN_DELETE£¬Îļþ±»É¾³ý£¬Èçrm
IN_DELETE_SELF£¬×Ôɾ³ý£¬¼´Ò»¸ö¿ÉÖ´ÐÐÎļþÔÚÖ´ÐÐʱɾ³ý×Ô¼º
IN_MOVE_SELF£¬×ÔÒÆ¶¯£¬¼´Ò»¸ö¿ÉÖ´ÐÐÎļþÔÚÖ´ÐÐÊ±ÒÆ¶¯×Ô¼º
IN_UNMOUNT£¬ËÞÖ÷Îļþϵͳ±»umount
IN_CLOSE£¬Îļþ±»¹Ø±Õ£¬µÈͬÓÚ(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
IN_MOVE£¬Îļþ±»Òƶ¯£¬µÈͬÓÚ(IN_MOVED_FROM | IN_MOVED_TO)
 
 
pyinotifyʹÓÃÀý×Ó
 
#!/usr/bin/env python
# encoding:utf-8
  
import os
from pyinotify import WatchManager, Notifier, \
ProcessEvent,IN_DELETE, IN_CREATE,IN_MODIFY
  
class EventHandler(ProcessEvent):
 """ʼþ´¦Àí"""
 def process_IN_CREATE(self, event):
  print  "Create file: %s " %  os.path.join(event.path,event.name)
  
 def process_IN_DELETE(self, event):
  print  "Delete file: %s " %  os.path.join(event.path,event.name)
 
 def process_IN_MODIFY(self, event):
   print  "Modify file: %s " %  os.path.join(event.path,event.name)
  
def FSMonitor(path='.'):
  wm = WatchManager() 
  mask = IN_DELETE | IN_CREATE |IN_MODIFY
  notifier = Notifier(wm, EventHandler())
  wm.add_watch(path, mask,auto_add=True,rec=True)
  print 'now starting monitor %s'%(path)
  while True:
   try:
     notifier.process_events()
     if notifier.check_events():
       notifier.read_events()
   except KeyboardInterrupt:
     notifier.stop()
     break
  
if __name__ == "__main__":
 FSMonitor('/home/firefoxbug')