From 449cf8a62e0962b722c9a75b00903c509b7bf044 Mon Sep 17 00:00:00 2001 From: haixuanTao Date: Fri, 16 Aug 2024 13:10:55 +0200 Subject: [PATCH] Speech to text example --- examples/speech-to-text/.gitignore | 1 + examples/speech-to-text/README.md | 41 ++++++++++++++++++++++++++++ examples/speech-to-text/dataflow.yml | 20 ++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 examples/speech-to-text/.gitignore create mode 100644 examples/speech-to-text/README.md create mode 100644 examples/speech-to-text/dataflow.yml diff --git a/examples/speech-to-text/.gitignore b/examples/speech-to-text/.gitignore new file mode 100644 index 00000000..eede66d8 --- /dev/null +++ b/examples/speech-to-text/.gitignore @@ -0,0 +1 @@ +*.pt \ No newline at end of file diff --git a/examples/speech-to-text/README.md b/examples/speech-to-text/README.md new file mode 100644 index 00000000..0ed2d2ac --- /dev/null +++ b/examples/speech-to-text/README.md @@ -0,0 +1,41 @@ +# Python Dataflow Example + +This examples shows how to create and connect dora nodes in Python. + +## Overview + +The [`dataflow.yml`](./dataflow.yml) defines a simple dataflow graph with the following three nodes: + +- a webcam node, that connects to your webcam and feed the dataflow with webcam frame as jpeg compressed bytearray. +- a window plotting node, that will retrieve the webcam image and plot it. + +The same dataflow is implemented for a `dynamic-node` in [`dataflow_dynamic.yml`](./dataflow_dynamic.yml). It contains +the same nodes as the previous dataflow, but the plot node is a dynamic node. See the next section for more +information on how to start such a dataflow. + +## Getting started + +After installing Rust, `dora-cli` and `Python >3.11`, you will need to **activate** (or create and **activate**) a +[Python virtual environment](https://docs.python.org/3/library/venv.html). +Then, you will need to install the dependencies: + +```bash +cd examples/python-dataflow +dora build ./dataflow.yml (or dora build ./dataflow_dynamic.yml) +``` + +It will install the required dependencies for the Python nodes. + +Then you can run the dataflow: + +```bash +dora up +dora start ./dataflow.yml (or dora start ./dataflow_dynamic.yml) +``` + +**Note**: if you're running the dynamic dataflow, you will need to start manually the ultralytics-yolo node: + +```bash +# activate your virtual environment in another terminal +python opencv-plot --name plot +``` \ No newline at end of file diff --git a/examples/speech-to-text/dataflow.yml b/examples/speech-to-text/dataflow.yml new file mode 100644 index 00000000..18fa271b --- /dev/null +++ b/examples/speech-to-text/dataflow.yml @@ -0,0 +1,20 @@ +nodes: + - id: dora-microphone + build: pip install -e ../../node-hub/dora-microphone + path: dora-microphone + outputs: + - audio + + - id: dora-distil-whisper + build: pip install -e ../../node-hub/dora-distil-whisper + path: dora-distil-whisper + inputs: + input: dora-microphone/audio + outputs: + - text + + - id: terminal-print + build: cargo build -p terminal-print + path: dynamic + inputs: + text: dora-distil-whisper/text