Make vision and voice examples cross-platform

Change-Id: Iaaecc49b1c9acb0e612b7a6fea377ff3f4712723
diff --git a/vision.py b/vision.py
index d0f1edb..9701bb5 100644
--- a/vision.py
+++ b/vision.py
@@ -12,6 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+import platform
 import sys
 
 import cv2
@@ -22,6 +23,12 @@
 from pycoral.adapters import classify
 from pycoral.adapters import detect
 
+_EDGETPU_SHARED_LIB = {
+  'Linux': 'libedgetpu.so.1',
+  'Darwin': 'libedgetpu.1.dylib',
+  'Windows': 'edgetpu.dll'
+}[platform.system()]
+
 FACE_DETECTION_MODEL = 'ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite'
 CLASSIFICATION_MODEL = 'tf2_mobilenet_v2_1.0_224_ptq_edgetpu.tflite'
 CLASSIFICATION_LABELS = 'imagenet_labels.txt'
@@ -36,7 +43,7 @@
   model_file, *device = model_file.split('@')
   return tflite.Interpreter(
       model_path=model_file,
-      experimental_delegates=[tflite.load_delegate('libedgetpu.so.1',
+      experimental_delegates=[tflite.load_delegate(_EDGETPU_SHARED_LIB,
                               {'device': device[0]} if device else {})])
 
 class Detector:
diff --git a/voice.py b/voice.py
index f703fe1..316b1d8 100644
--- a/voice.py
+++ b/voice.py
@@ -15,6 +15,7 @@
 """Keyword spotter model."""
 
 import logging
+import platform
 import queue
 import sys
 import threading
@@ -26,6 +27,12 @@
 
 import tflite_runtime.interpreter as tflite
 
+_EDGETPU_SHARED_LIB = {
+  'Linux': 'libedgetpu.so.1',
+  'Darwin': 'libedgetpu.1.dylib',
+  'Windows': 'edgetpu.dll'
+}[platform.system()]
+
 logging.basicConfig(
     stream=sys.stdout,
     format="%(levelname)-8s %(asctime)-15s %(name)s %(message)s")
@@ -176,7 +183,7 @@
   model_file, *device = model_file.split('@')
   return tflite.Interpreter(
       model_path=model_file,
-      experimental_delegates=[tflite.load_delegate('libedgetpu.so.1',
+      experimental_delegates=[tflite.load_delegate(_EDGETPU_SHARED_LIB,
                               {'device': device[0]} if device else {})])
 
 def classify_audio(model_file, labels_file, callback,