Kinecting to the Enterprise (No, not that Enterprise)!

http://channel9.msdn.com/coding4fun/kinect/Kinecting-to-the-Enterprise-No-not-that-Enterprise

“Today is a two for one day. Same presentation, same author, same basic topic, but for two different audiences, resulting in two different information experiences… (Think one is slide heaver and one is very code heavy and anti-slide)Rocking the Enterprise with the Kinect Experience

Can you imagine using Kinect at work to connect with customers, train employees, or interact with data systems?

During the last few years, Kinect has gained a space as one of the most innovative technologies in the entertainment industry. However, Kinect has the potential to extend way beyond the living room to completely revolutionize the way we build, think and interact with enterprise applications. Join me and see how…

This session will take you on a journey to learn how to leverage the Kinect experience to build a new type of enterprise application. The session will dive deep into the best practice and techniques developers can use to leverage Kinect specific capabilities such as skeletal tracking, motion sensors, data visualization and speech recognition as part of traditional business applications. To keep things fun, we will explore complimentary natural UI technologies and will even have a little surprise for you.

Project Information URL: http://weblogs.asp.net/gsusx/archive/2012/02/01/rocking-the-enterprise-with-kinect-slides-and-recording.aspxNote, to view the video, if you don’t have GotoMeeting installed, and you get a video codec error when trying to view the video, try this Install GoToMeeting Codec https://www4.gotomeeting.com/codec

Rocking the Enterprise with the Kinect Experience (The Techdays 2012 the Netherlands edition, code heavy version)

Can you image playing Kinect at Work? During the last few years, Kinect has gained a space as one of the most innovative technologies in the entertainment industry. However, Kinect has the potential of extending way beyond the living room and completely revolutionize the way we build, think and interact with enterprise applications. Join me and see how… This session will take you on a journey to learn how to leverage the Kinect experience to build a new type of enterprise application. The session will dive deep into the best practice and techniques developers can use to leverage Kinect specific capabilities such as skeletal tracking, motion sensors, data visualization and speech recognition as part of traditional business applications. To keep things practical, we will highlight a series of reference applications that showcase how organizations are using Kinect to enable the next generation of enterprise applications.

Project Information URL: http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2259

Contact Information:Blog: http://weblogs.asp.net/gsusx

-Sent from Weave for Windows Phone 7

Posted in Kinect | Leave a comment

The Purple Book… “Using Kinect for Windows with XNA!

http://channel9.msdn.com/coding4fun/kinect/The-Purple-Book-Using-Kinect-for-Windows-with-XNA

“Can’t get enough of Rob Miles? You love his C# Yellow Book and Windows Phone Programming Blue Book? Wish he had a free 58 page book on the Kinect, that goes from start to finish?

Welcome to the Purple Book!Using Kinect for Windows with XNA

This material, created by Rob Miles (University of Hull, United Kingdom), contains information on the Microsoft Kinect sensor bar and the Microsoft Kinect SDK. It assumes a working knowledge of the C# programming language, the XNA framework and program development using Visual Studio

Table of Contents:Introduction Welcome What you need to develop code An Introduction to Kinect The Kinect Sensor Inside a Kinect Sensor Bar Connecting the Sensor Bar Installing the Kinect for Windows SDK What We Have Learned Writing Kinect Programs Using the Kinect Video Camera Using the Kinect Depth Camera Using Sound with Kinect What We Have Learned Kinect Natural User Interfaces People tracking in Kinect Creating Augmented Reality Adding Voice Response What We Have Learned

Project Information URL: https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8938&c1=en-us&c2=0

Project Download URL: https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8938&c1=en-us&c2=0

Project Source URL: https://www.facultyresourcecenter.com/curriculum/pfv.aspx?ID=8938&c1=en-us&c2=0

Contact Information:Blog: http://www.robmiles.com Twitter: @robmiles”

-Sent from Weave for Windows Phone 7

Posted in Kinect | Tagged | Leave a comment

Text to Speech in .Net and .Net Micro Framework, with translation too!

http://channel9.msdn.com/coding4fun/blog/Text-to-Speech-in-Net-and-Net-Micro-Framework-with-translation-too

“While the thought of a cube farm filled with talking computers is the stuff of nightmares for many (well for me anyway, there’s enough chatter already, and to add to it every PC verbally chatting away too? AHHHhhhh… lol), building speech capabilities into our hardware projects is something many of us would like to do. Having our weather station tell us when something is important happening, our robot asking us to get out of the way, our robotank issuing final ultimatums, etc., etc.

But we also would like it to be easy and cheap too. Oh yeah, and it would also be cool if we could auto-magically support different languages.

Sounds like a mission for the Cloud, doesn’t it?

Today’s Hardware Friday comes to us from Marco Minerva via his New version of Text-To-Speech library post and is just that, Text to Speech, for .Net and the .Net Micro Framework, powered by the Azure DataMarket based Microsoft Translator Service.Text-To-Speech (Speech Synthesis) with Microsoft Translator Service

This library uses the Microsoft Translator Service to obtain streams of file speaking text in the desired language. At the moment of writing, there are 44 supported languages, including English, Italian, German, French, Spanish, Japanese and Chinese.

If you’re looking for the .NET Micro Framework of this library, go to http://code.msdn.microsoft.com/Text-To-Speech-for-NET-9cea4462.Building the Sample

The code you can download from this page contains a Class Library, named TranslatorService.Speech, that provides all you need to add speech synthesis functionalities to your applications. It also includes a small Console Application,TranslatorSpeakExample, that shows a basic example of its usage.

To run the application, you need to to go to Azure DataMarket and obtain the Client ID and Client Secret to use the service.Description

The library makes calls to the Microsoft Translator Service using the classic HttpWebRequest .NET object and process the REST response. So, its usage is very simpleText-To-Speech for .NET Micro Framework with Microsoft Translator Service

This library uses the Microsoft Translator Service to obtain streams of file speaking text in the desired language. At the moment of writing, there are 44 supported languages, including English, Italian, German, French, Spanish, Japanese and Chinese.

If you’re looking for the .NET Framework version of this library, go to http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03.Building the Sample

The code you can download from this page contains a Class Library, named MicroTranslatorService.Speech, that provides all you need to add speech synthesis functionalities to your .NET Micro Framework applications. It also includes a small .NET Micro Framework project,TranslatorSpeakExample, that shows a basic example of its usage.

To run the application, you need to to go to Azure DataMarket, and obtain the Client ID and Client Secret to use the service.Description

The library makes calls to the Microsoft Translator Service using the HttpWebRequest .NET Micro Framework object and process the REST response. So, its usage is very simple:

If you’re new to the Azure DataMarket, like I was, you might not know what “you need to to go to Azure DataMarket and obtain the Client ID and Client Secret to use the service.” really means, where to find create or find your “Client ID and Client Secret.”Microsoft Translator – Obtaining an Access Token

You must obtain an access token to use the Microsoft Translator API. The access token is passed with each API call and is used to authenticate your access to the Microsoft Translator API. It provides a secure access to the Microsoft Translator API and allows the API to associate your application’s requests to the Microsoft Translator service with your account on Azure Marketplace.

Microsoft provides methods to obtain access tokens safely, repeatedly, and easily. To obtain an access token, perform the following steps:Subscribe to the Microsoft Translator API on Azure Marketplace Register your application Azure DataMarket Make an HTTP POST request to the token service 1. Subscribe to the Microsoft Translator API on Azure Marketplace

Subscribe to the Microsoft Translator API on Azure Marketplace. Basic subscriptions, up to 2 million characters a month, are free. Translating more than 2 million characters per month requires a payment. You may pick from any of the available subscription offers.2. Register your application Azure DataMarket

To register your application with Azure DataMarket, visit https://datamarket.azure.com/developer/applications/ using the LiveID credentials from step 1, and click on “Register”. In the “Register your application” dialog box, you can define your own Client ID and Name. The redirect URI is not used for the Microsoft Translator API. However, the redirect URI field is a mandatory field, and you must provide a URI to obtain the access code. A description is optional. Take a note of the client ID and the client secret value.

Snaps for Step 1 above;

Snaps for Step 2 above;

Now take the Client Id and Client secret and paste it into the app;

Now you should be good to go!

Run it and start playing. It’s really kind of fun listening to the different translations (though I have no clue what they are saying…lol)

Here’s a snap of the .Net version Solution;

static void Main(string[] args)

{

if (string.IsNullOrEmpty(CLIENT_ID) || string.IsNullOrEmpty(CLIENT_SECRET))

{

Console.WriteLine(“You must obtain a Client ID and Secret in order to use this application. Please visit Azure DataMarket at https://datamarket.azure.com/developer/applications to get one.\n”);

Console.ReadKey();

return;

}

// Create the object to retrieve spoken streams.

SpeechSynthesizer speech = new SpeechSynthesizer(CLIENT_ID, CLIENT_SECRET);

speech.SpeakCompleted += new EventHandler(speech_SpeakCompleted);

speech.AudioFormat = SpeakStreamFormat.Wave;

speech.AudioQuality = SpeakStreamQuality.MaxQuality;

Console.WriteLine(“Retrieving the list of supported languages…”);

try

{

string[] languages = speech.GetLanguages();

Console.WriteLine(“Found {0} supported languges:”, languages.Length);

foreach (var lang in languages)

{

Console.WriteLine(“{0} – {1}”, lang, CultureInfo.GetCultureInfo(lang).DisplayName);

}

}

catch (Exception ex)

{

Console.WriteLine(“Error during the request: {0}”, ex.Message);

}

Console.WriteLine(“\n”);

bool quit = false;

while (!quit)

{

try

{

Console.Write(“Insert the text to be spoken (empty to terminate): “);

string text = Console.ReadLine();

if (string.IsNullOrWhiteSpace(text))

{

quit = true;

continue;

}

Console.Write(“Specify the text language (empty to terminate): “);

string language = Console.ReadLine();

if (string.IsNullOrWhiteSpace(language))

{

quit = true;

continue;

}

Console.Write(“Submitting request… “);

// Retrieve the stream of wave-file speaking the passed-in text in the desired language.

//using (Stream stream = speech.GetSpeakStream(text, language))

//{

// var length = stream.Length;

// using (SoundPlayer player = new SoundPlayer(stream))

// player.PlaySync();

//}

// Speak the passed-in text in the desired language, in an asynchronous way.

// When this operation completes, the speech_SpeakCompleted event is raised.

speech.SpeakAsync(text, language);

}

catch (Exception ex)

{

Console.WriteLine(“Error during the request: {0}”, ex.Message);

}

Console.WriteLine(“\n”);

}

}

private static void speech_SpeakCompleted(object sender, SpeechEventArgs e)

{

if (e.Error != null)

Console.WriteLine(“Erorr: ” + e.Error.Message);

}

}

The TranslatorService.Speech assembly is pretty easy to understand and well documented;

///

/// Initializes a new instance of the SpeechSynthesizer class, using the specified Client ID and Client Secret and the desired language.

///

/// The Application Client ID.

///

/// The Application Client Secret.

///

/// A string representing the supported language code to speak the text in. The code must be present in the list of codes returned from the method .

/// You must register your application on Azure DataMarket, https://datamarket.azure.com/developer/applications, to obtain the Client ID and Client Secret needed to use the service.

///

///

///

///

public SpeechSynthesizer(string clientID, string clientSecret, string language)

{

ClientID = clientID;

ClientSecret = clientSecret;

Language = language;

AudioFormat = SpeakStreamFormat.Wave;

AudioQuality = SpeakStreamQuality.MinSize;

}

#region Get Languages

///

/// Retrieves the languages available for speech synthesis.

///

/// A string array containing the language codes supported for speech synthesis by Microsoft Translator Service.

/// The or properties haven’t been set.

/// This method will block until the array is returned. If you want to perform a non-blocking request to be notified when the operation is completed, use the method instead.

/// For more information, go to http://msdn.microsoft.com/en-us/library/ff512415.aspx.

///

///

///

public string[] GetLanguages()

{

// Check if it is necessary to obtain/update access token.

this.UpdateToken();

string uri = LANGUAGES_URI;

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);

httpWebRequest.Headers.Add(AUTHORIZATION_HEADER, headerValue);

if (Proxy != null)

httpWebRequest.Proxy = Proxy;

using (WebResponse response = httpWebRequest.GetResponse())

{

using (Stream stream = response.GetResponseStream())

{

DataContractSerializer dcs = new DataContractSerializer(typeof(string[]));

string[] results = (string[])dcs.ReadObject(stream);

return results;

}

}

}

If you’re looking to add speech, as in text to speech, with automatic machine translation into different languages to your .Net app or .Net Micro Framework project, you should run, not walk, and check this out…

Page image, nabaztag, courtesy of habi”

-Sent from Weave for Windows Phone 7

Posted in .Net, Text to Speech, Translation | Leave a comment

Develop for Windows Phone, with Windows Phone… TouchDevelop!

http://channel9.msdn.com/coding4fun/blog/Develop-for-Windows-Phone-with-Windows-Phone-TouchDevelop

“Today’s Mobile Monday post shows off a project that’s kind of meta, programming for the phone, on the phone…

Think you need a PC to develop for Windows Phone? Think it would be cool to take your development environment on the road, so you can code where ever you are? Like easily share your work with others? Would you like to reach out and touch your code?…touchdevelop

Write fun programs on your phone and share them with other people! Download for free for Windows Phone 7.

info

Program your phone directly on your phone with TouchDevelop! You do not need a separate PC. Scripts can perform various tasks similar to regular apps. Any TouchDevelop user can install, run, edit, and publish scripts. You can share your scripts with other people by publishing them.

videos

getting started: Watch this getting started video to see how you can program your phone with TouchDevelop.

more about editing code:declare a local variable, select a particular statement, extract expression, extract statement, navigate between statements, action parameters and results, promote local to global variable, how to sum values in a loop

in the classroom: TouchDevelop Excites Students — Ninety eighth-grade students at Mill Creek Middle School in Kent, Washington, learned how to write smartphone programs with TouchDevelop…

meet a script author: Peter Heldens, a manager at Microsoft University in the Netherlands, recently visited the touchDevelop team. Peter wrote My Online Meetings, the popular script that allows users to join a conference call.

There’s also a free book/PDF available too…

This book contains an introduction to the idea of programming on a phone, illustrating in depth everything one needs to know to get started with the TouchDevelop app and the TouchDevelop language. The book is comprehensive in its treatment of the language, and follows a logical structure from simple constructs to more advanced ones. The aim of the book is twofold: It tells a teacher everything there is to know about the new programming paradigm, and it serves well as a reference to students who are learning the system.

There’s a broad scope of programs you can create with TouchDevelop, from the silly, to games, to even “business” apps.

For example, here’s a script that ties into the Lync clientmy Lync calls

Connect to Today’s ConfCall with a Single Tap. This version leverages the Microsoft Lync 2010 Client (Call Back)

meta version “v2.2”;

meta name “my Lync calls”;

meta icon “phone”;

meta color “#ffb7410e”;

// Connect to Today’s ConfCall with a Single Tap. This version leverages the Microsoft Lync 2010 Client (Call Back)

action My_Lync_Calls() {

// This program parses your calender for conference calls and dials them on request including ConferenceIDs

data→release := “1.1a for Lync”;

data→nextdays := 0;

data→meetings := 0;

$advanced := true;

// Init dial conference hub

if data→dialin→is_empty then {

code→setDialin;

}

$sDialin := data→dialin;

$sDialin := data→dialin;

// Init LeaderName

if data→sLeaderName→is_empty then {

code→setLeader;

}

$sLeaderName := data→sLeaderName;

// Init PIN

if data→sPIN→is_empty then {

code→setPIN;

}

$sPIN := data→sPIN;

$s := time→today→add_days(0);

$e := time→tomorrow→add_days(data→nextdays);

$sID, $sLeader, $sLync := code→getConfCalls($s, $e);

code→setTile;

if $sID→equals(“”) then {

skip;

}

else {

$r := code→getDialString($sDialin, $sID, $sLeader, $sPIN, $advanced);

if $r→contains(“@”) then {

code→setDialin;

if $advanced then {

code→setLeader;

code→setPIN;

}

code→My_Lync_Calls;

}

else {

wall→clear;

$b := wall→ask_boolean(“Connect Using Microsoft Lync 2010 Client?”, “YES=call back, NO=direct dialin”);

code→showDTMFControls;

if not $b then {

phone→dial_phone_number($r);

}

else {

code→dialinLync($sLync);

}

}

}

“\n\n” →post_to_wall;

}…

Here’s a snap of just some of the things created with TouchDevelop

Also every TouchDevelop app/script include its source, so you can learn and build on what others have done.

If you feel like half-a-dev when you don’t have a coding environment open in front of you, if you have separation anxiety when you leave your IDE, or you just dig the idea of creating apps for your Windows Phone on your Windows Phone, then TouchDevelop is just a free download away…”

-Sent from Weave for Windows Phone 7

Posted in TouchDevelop | Leave a comment

AutoCAD and the Kinect!

http://channel9.msdn.com/coding4fun/kinect/AutoCAD-and-the-Kinect

“Kinect and AutoCAD? Yes, you sure can…

Note: These samples are currently based on the Kinect for Windows Beta 2 SDK and while since the v1 release I’ve tried to avoid Beta 2 projects, there’s been some requests for more LOB Kinect usage examples and I’ve not seen many/any AutoCAD & Kinect examples. I’m sure if there’s sufficient interest Kean will update the samples for v1…AU 2011 Samples: Integrating Microsoft® Kinect™ with AutoCAD®

Anyway, I’ve had some fun over the last few days combining the various Kinect samples I’ve posted on this blog into a single “KinectSamples” project, which will form the core of the Kinect demos I’ll present at AU 2011. I took the opportunity to factor out common functionality from many of the samples, introducing something of a class hierarchy, in the process.

Here are the commands for you to build and try:KINSKEL “My first Kinect” sample, showing how to create a rudimentary jig to display skeleton data inside AutoCAD KINECT Dynamically displays a point cloud at the chosen resolution (see KINBOUNDS), and captures/imports a full resolution, colorised point cloud on click KINBOTH Overlays both skeleton and point cloud data in an AutoCAD jig, creating linear geometry and importing a point cloud on click KINSNAPS Captures a sequence of point clouds and combines them prior to import KINSAMP A system variable, rather than a command, that specifies the sampling rate for the point cloud display (50 means one in fifty points gets displayed, 1 means they all do) KINBOUNDS Allows definition of a clipping volume for point cloud display and import. This clipping volume is respected by all commands in the sample allowing point cloud import KINPOLY Draws a sequence of 3D polylines while jigging (and then importing) a point cloud KINEXT Sweeps a circular profile along a spline path KINEXT2 Sweeps a circular profile along a spline path, creating regular segments to improve performance and reliability KINNAV Navigates a 3D model by adjusting the view based on input from Kinect

Many of these samples now use the following class hierarchy (listed with a brief description and the names of the commands they help implement):DrawJig (the core AutoCAD base class) KinectSkeletonJig (our simplest sample, kept as a flat class, to simplify copy & paste into a new project – KINSKEL) KinectJig (base class for the more complex samples, handles sensor initialisation and message forcing) KinectPointCloudJig (handles display of a point cloud – KINECT) KinectCombinedJig (displays a skeleton on top – KINBOTH) KinectDelayJig (combines a sequence of snapshots – KINSNAPS) KinectPolyJig (draws 3D polylines – KINPOLY) KinectSolidsJig (sweeps a circle along a spline path – KINEXT) KinectSegmentedSolidsJig (ditto in segments – KINEXT2)

I may yet factor some more in advance of AU – there may be an opportunity to put some kind of gesture handling base class in there, for instance – but having too deep a hierarchy may also make it a little harder to understand the code. We’ll see what makes sense (and I get time for).

…Additional Material

The session included a number of more complicated samples, demonstrating techniques for integrating AutoCAD with Kinect:Displaying and importing point clouds Drawing 3D polylines Sweeping simple solids Sweeping segmented solids Navigating a 3D model

For additional samples and further reading, please be sure to visit:

http://through-the-interface.typepad.com/through_the_interface/kinect

Project Information URL: http://through-the-interface.typepad.com/through_the_interface/2011/11/au-2011-samples-integrating-microsoft-kinect-with-autocad.html, http://through-the-interface.typepad.com/through_the_interface/kinect

Project Source URL: http://through-the-interface.typepad.com/files/KinectSamples.zip

Contact Information:Blog: http://through-the-interface.typepad.com/ Twitter: @keanw”

-Sent from Weave for Windows Phone 7

Posted in Kinect | Leave a comment

Microsoft releases Robotics Developer Studio 4 with Kinect support!

http://feedproxy.google.com/~r/WinRumors/~3/bSSOyOHhJbs/microsoft-robotics-developer-studio-4-released-kinect-support

“Microsoft’s Robotics Developer Studio 4, a freely downloadable framework for robot programming and management, has been released today. The new software will add support for Microsoft’s .NET Framework 4.0, XNA 4.0, and Silverlight 4.0. Most excitingly, will also include support for up to four Kinect sensors using the Kinect for Windows SDK. To help users integrate the new features, there’s a new reference hardware design that includes Kinect-based navigation like that in the video seen below. The Parallax Eddie robot kit is also built from this design.

A beta of the software was released in December, and Microsoft’s own developers have been using it for some time — it’s what powers this dog-sitting telepresence robot. This latest…

Continue reading…”

-Sent from Weave for Windows Phone 7

Posted in Kinect, Robotics | Tagged | Leave a comment

Student project aims to teach different cultures using Kinect and Windows Phone

http://feedproxy.google.com/~r/WmPowerUser/~3/ty_RVoY8FA4/

“Ro Ramtohul’s student project is to increase UK citizen’s familiarity with other cultures using a bit of technology.

In his project demonstrated above users would be incentivised to learn a new culturally relevant gesture every day, e.g. bowing in Japan, in order to control the television.

Lessons would be delivered via a Windows Phone and performance measured via a Kinect connected to an IR Blaster, which ultimately controls the TV.

For myself the neatest bit of the technology is where notifications get sent to a Windows Phone when a user goes in front of a Kinect, and one can imagine all kinds of applications for this, from location-based reminders, family notice boards to relevant news summaries and status updates.

Read more about Ro’s project at his project website here.”

-Sent from Weave for Windows Phone 7

Posted in Kinect, Windows Phone | Leave a comment

Microsoft donates its ‘Mayhem’ open-source scripting application to Outercurve Foundation!

http://www.zdnet.com/blog/microsoft/microsoft-donates-its-mayhem-open-source-scripting-application-to-outercurve-foundation/12142

“The Microsoft Research-developed Mayhem scripting technology is the latest open-source app the Redmond company is donating to the Outercurve Foundation.”

Posted in Scripting | Tagged | Leave a comment

Metro Studio

http://feedproxy.google.com/~r/wmexperts/~3/UWW6kNUQWew/story01.htm

“Every so often we cover tools that help out developers, but this is in another league. A company called SyncFusion has created a product called Metro Studio 1 which looks to be invaluable to developers and designers alike. The company traditionally develops .NET components for ASP.NET, WPF, WinForms, Silverlight, WP7 and others.

Metro Studio 1 comes with 600 unique metro icons that can then be customized through the interface. You can change the size, padding, background shape, and colors of any icon. Plus, the XAML source is provided for the icons, or you can save the PNG. Every icon is vector based (hence why the XAML source is available), so exporting at any size is possible.

Best of all, the studio is totally free, and every icon is royalty-free and can be used in commercial projects.

So go on, download it now. Thanks, @rmaclean”

-Sent from Weave for Windows Phone 7

Posted in Metro, User Experience | Tagged , | Leave a comment

Microsoft Shows Off Interactive Wearable Multitouch Projector!

http://feedproxy.google.com/~r/WmPowerUser/~3/Wkfhip3trhk/

“Microsoft Research is continuing its efforts into Natural User Interaction space. The latest project they demoed is a Interactive Wearable Multi-touch Projector. The project is in its early stage, but you can see the potential from the video above. People can project their computing interfaces over any surface and start interacting with it. Microsoft Research […]

Read more at Microsoft News”

-Sent from Weave for Windows Phone 7

Posted in User Experience | Tagged , | Leave a comment