MLECO-1253 Adding ASR sample application using the PyArmNN api

Change-Id: I450b23800ca316a5bfd4608c8559cf4f11271c21
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
diff --git a/python/pyarmnn/examples/common/utils.py b/python/pyarmnn/examples/common/utils.py
new file mode 100644
index 0000000..cf09fde
--- /dev/null
+++ b/python/pyarmnn/examples/common/utils.py
@@ -0,0 +1,41 @@
+# Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+# SPDX-License-Identifier: MIT
+
+"""Contains helper functions that can be used across the example apps."""
+
+import os
+import errno
+from pathlib import Path
+
+import numpy as np
+
+
+def dict_labels(labels_file_path: str, include_rgb=False) -> dict:
+    """Creates a dictionary of labels from the input labels file.
+
+    Args:
+        labels_file: Path to file containing labels to map model outputs.
+        include_rgb: Adds randomly generated RGB values to the values of the
+            dictionary. Used for plotting bounding boxes of different colours.
+
+    Returns:
+        Dictionary with classification indices for keys and labels for values.
+
+    Raises:
+        FileNotFoundError:
+            Provided `labels_file_path` does not exist.
+    """
+    labels_file = Path(labels_file_path)
+    if not labels_file.is_file():
+        raise FileNotFoundError(
+            errno.ENOENT, os.strerror(errno.ENOENT), labels_file_path
+        )
+
+    labels = {}
+    with open(labels_file, "r") as f:
+        for idx, line in enumerate(f, 0):
+            if include_rgb:
+                labels[idx] = line.strip("\n"), tuple(np.random.random(size=3) * 255)
+            else:
+                labels[idx] = line.strip("\n")
+        return labels