Category Archives: IoT

The Voice-Controlled, Face Recognizing, Drone Journey – Part 8

Introduction to the Drone Journey

Speech to Text

This post is the eighth post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 7 other posts building up to this one which you can find at the end of this post.

Focus of this post

We have come a long way from when we first started with a drone controlled from the computer. In the last post we spent time understanding how to use the Bing Speech API to convert supplied text to speech. In this post we will:

  • Show how you can use the Bing Speech API to derive text from speech.
  • Integrate that approach into our DroneWebServer.js web application and front end HTML so that we can control the drone via speech.

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 8

The Voice-Controlled, Face Recognizing, Drone Journey – Part 7

Introduction to the Drone Journey

Text to Speech

This post is the eighth post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 7 other posts building up to this one which you can find at the end of this post.

Focus of this post

This post is going to make use of another of the APIs offered by Microsoft Cognitive Services – the Bing Speech API. Back in post 4, seems a long time ago now, I explained how to sign up for the various services and get the API key.

You will need to go back now and ensure you copy the BING Speech API key as we will use that in our next steps.

By the end of this post we will have the drone speaking to us when it lands.

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 7

The Voice-Controlled, Face Recognizing, Drone Journey – Part 6

Introduction to the Drone Journey

Face Recognition

This post is the seventh post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 6 other posts building up to this one which you can find at the end of this post.

Focus of this post

In this post I am going to pick-up where we left off and look at :

  • How to use the Microsoft Cognitive Services Face API to recognize a specific face. Specifically we will explore the face.identify approach.
  • How to build the identify approach into your DroneWebServer.js file such that the drone will land when it sees a named person.

My issues

I have to admit to facing quite some challenges getting face.identify to work. Using the face.identify capability requires a large number of things to be completed, in a very specific order, before it will work.

Node.js does not make doing things in a specific order easy without nested functions, callbacks and other things.  The truth is that I wasted a large number of hours before I realized that the asynchronous nature of node.js was a major source of many of  the issues I was  running into rather than me misusing the Cognitive Services APIs o any issue with the APIs themselves.

I also found that the online examples sometimes do not really give you the step by step help you might need. this looked to mostly be the case in the Node.JS world as other programming languages  seemed much more comprehensive. In the node.js world you essentially get the code to look at and try to understand which does not help with “ordering” issues.

When you add to that it is entirely possible to create things, people for example, with the same name multiple times (without realizing it) you can see where my issues came from.

I did speak with Lukas again at this stage. He told me that he set up his target faces using the SDK console rather than through code so I hit a dead end there as I was determined to try avoid that (I must admit I thought about it ;)..).

This is where my first outreach to someone at Microsoft came. I contacted Chris Thrasher who very kindly sent me some code samples he had worked on. He too found the challenge of things not being called in order which he solved using the “bluebird” package.

Thanks to his pointer and his sample code I identified a spot I was not doing something right which allowed me to move forwards.  I want to be sure to say thanks to Chris because without his help I would have stopped at face.similar.

A warning: This is a monster blog post. I decided to put it all in one rather than break it up. Grab a coffee, give yourself sometime and enjoy the ride!

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 6

The Voice-Controlled, Face Recognizing, Drone Journey – Part 2

Introduction to the Drone Journey

Part 2

This post is the third post in Journey to build an autonomous, voice-controlled, face recognizing drone. If you have stumbled across this I encourage you to read the following two posts first (otherwise this will not make a lot of sense):

Focus of this post

In this post I am going to pick-up where we left off and cover how you can:

  • Control the drone via a node.js application when your computer and the drone are both on the drones default wireless network
  • Install express to setup  simple web server in node-js land
  • Build a basic web application to control the drone using express js
  • Hack the drone so that it can operate on the same WPA2 secured wireless network where you have Internet access (need this for Cognitive Services)

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 2

Getting your enterprise ready – bringing your employees along and next steps

In the last of these articles I want to focus on what is often overlooked, in any change – bringing along employees. We can have the best digital software platform in the world, the best partnerships and the best services but change takes longer to achieve and is harder to sustain without employees believing in the evolution and benefitting from the shift. They have to see what is in it for them, what is in it for the organization and what is in it for society.

James Surowiecki, a New York Times journalist and author of books such as Wisdom of Crowds, once said “The desire for reinvention seems to arise most often when companies hear the siren call of synergy and start to expand beyond their core businesses”. This quote illustrates the opportunity available today if we can get the employees integrated and collaborating on the changes and highlights the risk if we cannot.

Change, however, can evoke hesitation in employees. Let’s think about what to consider as we go through change and how it can be transformed into something more positive:

  • Know that change is a process. It does not happen from one day to the next. It is important to have a plan that explains where you are going and the steps you think will be needed to get there. It is important employees understand the principles involved and that progress is transparently communicated on an ongoing basis. They also need to understand their role in the plan and how it will benefit them and society. There is nothing better than a shared vision to drive a plan forwards to a successful outcome.
  • Help your employees reframe how they view change. Change can be positive yet it is often perceived as negative. For most employees the fourth industrial revolution presents a fantastic opportunity to grow, learn and be ready for the next generation of challenges our workforce needs to overcome!
  • Be open to listen and change course. The world is shifting around us and a change process and plan started today might need adapting tomorrow. It is vital that employees understand that you are not on a rigid path but one that will likely need to adapt. This will prepare the ground for inevitable variations along the way.

So what is this change we speak about? Every company is on a journey to being a software company delivering services with IoT, the cloud, big data and analytics at the core. We are shifting into a knowledge economy which requires individuals, organizations and governments to learn how to best leverage data, the cloud, analytics, programming and more to drive more educated decisions, differentiated services and market approaches.

For employees this offers a chance to obtain new skills, work in new fields and to push the boundaries of creativity on a continuous basis. For those not yet in the workforce, it provides an opportunity to obtain new in demand skills. There is no doubt this fourth industrial revolution will generate new jobs and open a new world of opportunities. This is not about removing jobs but making them more impactful.

It is therefore vitally important that we are all ensuring governments and organizations are providing the right learning opportunities to obtain and enhance skills so everyone can prosper in the knowledge economy. This means we need to provide access to the right environments to experiment and ensure that new ways of working, where speed is of the essence, are able to take hold along with a data driven mindset.

Learning and Skills Development

At Microsoft, as we strive to empower every person and every organization on the planet to achieve more, we know that there is tangible assistance we can provide. We understand the need to help prepare the younger generation for the future which is why we teamed up with others to provide the BBC Microbit to 1 Million students in the UK (amongst many other initiatives). We understand it’s important to facilitate skills development, which is why we enacted the professional degree program, run hackathons, provide online training and deliver free trials. These kinds of activities can help remove barriers and drive new opportunities which in turn reduced hesitation around the changes we are undergoing.

Adopting new approaches

If we accept the future will be largely software-based, we should also accept the way in which we build and deliver things will change. Moving forwards organizations have the opportunity to be faster to market, evolve products once in market and enable new services even in shipped products.

This is going to require organizations to adapt R&D approaches to work towards a minimum viable product which can be shipped quickly. That quickly shipped product is then continuously improved over time and new services created around it using data it is generating. Customers may not even know they needed these services at the time of purchase, but such changes enable new monetization and societal improvement opportunities on an ongoing basis.

Next Steps

In short – work with your employees to learn new technologies and explore possibilities. Ensure our younger generations are ready for the next generation of jobs and, lastly, transform your organization so you can continuously evolve products and services over time.

Today much of the hype around IoT focuses on the products and services. I believe the emphasis should be on adapting to the new world and how organizations are using IoT to ride the wave of the fourth industrial revolution to the benefit of all.  I believe the time has come to take all that an organization or government does and bring it together to deliver rich products and services that solve problems and improve society using the technology that is available.

A focus on digital transformation is part of the role of every government official and every organization employee. The shift to the cloud, data driven organizations, analytics and IoT driven services is no longer on the horizon. It is already here.

Our next moves set the tone for how our society, industries, organizations and governments will look for the foreseeable future. 

How long will you wait before you start your journey?