Speech language in Windows IOT - raspberry-pi2

I can't find information about this nor "Windows IOT" category.
Is there any way to install new languages to the speech system in Windows IOT for Raspberry Pi ?
I'm writing an app that should speek french but there is no built-in french speech language

This should help give you multiple languages on Windows 10 IoT Core:
In summary,
Install languages on your Win 7/8/10 machine.
Copy from: C:\Windows\Speech_OneCore\Engines\SR\(lang)
To Windows IoT: \\minwinpc\C$\Windows\Speech_OneCore\Engines\SR\(lang)
Then you can use:
var speechRecognizer = new SpeechRecognizer(new Language("(lang)"))
Details here:
(original link (died)): http://paulfasola.fr/en/add-voices-windows-10-iot-core-tts/
(wayback machine link): https://web.archive.org/web/20160908171653/https://paulfasola.fr/en/add-voices-windows-10-iot-core-tts/

FYI, there is an excellent SpeechTranslator project in the ms-iot samples github repo which shows how to use the SpeechRecongnizer and SpeechSynthesizer in great detail. After you follow the steps in Jim's answer, you should be able to set the voice on your Speech Synthesizer using:
public static string voiceMatchLanguageCode = "fr";
// select the language
var voices = SpeechSynthesizer.AllVoices;
foreach (VoiceInformation voice in voices)
{
if (voice.Language.Contains(voiceMatchLanguageCode))
{
synthesizer.Voice = voice;
break;
}
}

Related

COM-Object for Teams Client - Microsoft.Office.Uc

I am trying to access Microsoft Teams client COM object.
As it was possible with Skype For Business with Lync client object in PowerShell.
Exactly opposite to this.
[Reflection.Assembly]::LoadFile("C:\temp\Microsoft.Lync.Model.dll")
[Reflection.Assembly]::LoadFile("C:\temp\microsoft.office.uc.dll")
$lyncclient = [Microsoft.Lync.Model.LyncClient]::GetClient()
$lyncclient2 = [Microsoft.Lync.Model.ContactInformationType]::Availability
$lyncclient.Self.Contact.GetContactInformation($lyncclient2);
This code results in presence of current Lync/Skype user.
$teamsClient = [Microsoft.Office.Uc.IUCOfficeIntegration]
$teamsClient.GetInterfaces()
Following small article https://www.msxfaq.de/teams/api/teams_presence.htm
I am not even able to recieve Com obj list in Get-ChildItem HKLM
only in Get-ChildItem HKCU.
My goal is to use the same functionality as Outlook does, to read presence of users in MS Teams.
Teams is still exposing a few functionalities via COM. Its implementing the IUCOfficeIntegration interface, so Microsoft Outlook can show the Teams availibility status of a contact in Outlook itself.
More Infos on how the Office Integration works can be found here.
https://github.com/MicrosoftDocs/office-developer-client-docs/blob/master/docs/shared/integrating-im-applications-with-office.md
I just describe quickly what i have done to receive availibility informations via COM.
Notice that this is C# code. I hope that it still helps.
Getting the ClassID of the Teams COM Class.
When Outlook and Teams is installed, Teams will register itself as an IM Application capable of providing availibility informations to Outlook. This is done by writing a few registry nodes. The ClassID can be found here
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IM Providers\Teams
Getting Availibilities:
To do so i basically reversed all of the steps of the linked article showing how to implement a client for Office Integration, because i want to consume the Teams client.
Notice that the Lync SDK needs to be installed (https://www.microsoft.com/en-us/download/details.aspx?id=36824) because all of the Office Integration Interfaces are defined in it. (Reference to Microsoft.Office.Uc.dll needed). Maybe this library can be
class Program
{
static void Main()
{
var version = "15.0.0.0";
var teams = (IUCOfficeIntegration) new TeamsOfficeIntegration();
var client = (IClient) teams.GetInterface(version, OIInterface.oiInterfaceILyncClient);
var contactManager = client.ContactManager;
var uri = "name#company.com";
var contact = contactManager.GetContactByUri(uri);
var availibility =
(ContactAvailability) contact.GetContactInformation(ContactInformationType.ucPresenceAvailability);
}
[ComImport, Guid("00425F68-FFC1-445F-8EDF-EF78B84BA1C7")]
public class TeamsOfficeIntegration
{
}
}
I will try to upload a small project to GitHub to demonstrate....
As Powershell is based on .NET this should somehow be possible as well. Or a small C# Interop library could be written.
Teams does not use COM at all and never will.
We plan to support presence APIs in Microsoft Graph bit do not have a date to share.

Can restcomm support multiplayer video

Hi,i used restcomm to develop app,when I see it's code i found
private void startCall(SignalingParameters signalingParameters)
{
RCLogger.i(TAG, "startCall");
callStartedTimeMs = System.currentTimeMillis();
// Start room connection.
logAndToast("Preparing call");
// we don't have room functionality to notify us when ready; instead, we start connecting right now
this.onConnectedToRoom(signalingParameters);
}
so i want to know if the restcomm-android-sdk not support multiplayer video now ??
Pengwang, depends what you refer to by multi-peer video. As of now, Restcomm Android SDK supports P2P audio/video, which means that two people can have video-chat. But it doesn't support more than two yet.
Hope this helps,
Antonis Tsakiridis

Architecture: Titanium Desktop against the Twitter Streaming API

I'm new to Titanium, and have started out by trying to build a (yet another) Twitter client. The problem I've encountered is that I would like to use Twitter's Streaming API, and I'm struggling to understand the best way to do that within Titanium Desktop.
Here's the options I see:
Don't use the Streaming API, it's not going to work.
Build a Python bridge that connects with a httpclient that supports streaming responses (required for the Streaming API, it never closes the connection). Let that client deliver the responses to a Javascript method that formats and outputs tweets as they come. (Problem here: How do I bundle the python libraries I need?)
Use the Javascript HttpClient shipped with Titanium SDK 1.1 in some clever way I'm not aware of.
Use the 1.2.0-RC2 release of Titanium SDK that ships with a HttpClient that has support for streaming responses. There's very little information in the Release notes to judge if the streaming support is enough to get things working with the Streaming API.
Use twstreamer, a javascript library for streaming support through a Flash intermediary. I've seen bug reports stating the Flash does not work well inside Titanium Desktop, but I'd love to be proven wrong.
Another way that I'm not yet thought of.
I'm hoping for all sorts of clever ideas of how I can get this working, and tips going forward. Thanks for reading!
I'm not at all familiar with Titanium, but looking through their docs your best bet is likely going to be to use Titanium.Process to fork something that can deal with streaming responses. There are plenty of lightweight options here, but note that if you want to use userstreams you'll need an option that supports OAuth and SSL
Here's how to do it (after LOTS of testing):
var xhr = Titanium.Network.createHTTPClient();
xhr.open("GET", "https://stream.twitter.com/1/statuses/filter.json?track=<Your-keyword-to-track>", true, '<Your-twitter-nickname>', '<Your-twitter-password>');
xhr.send();
var last_index = 0;
function parse() {
var curr_index = xhr.responseText.length;
if (last_index == curr_index) return; // No new data
var s = xhr.responseText.substring(last_index, curr_index);
last_index = curr_index;
console.log(s);
}
var interval = setInterval(parse, 5000);
setTimeout(function(){
clearInterval(interval);
parse();
xhr.abort();
}, 25000);

Where does node.js fit in a Microsoft / Azure / WCF / MVC project?

I have been working on a real time data project using the Microsoft stack and it seems that node.js is made for this very purpose (of real time data) and is getting a lot of publicity.
Does it makes sense to integrate node.js into my MSFT solution? (what criteria should I be considering)
How does it "hook into" the project?
What components does it replace?
Steve Marx demo'd this for http://chat.smarx.com/
You can see the basic code at http://things.smarx.com/#Run Node.js -
var proc = new Process()
{
StartInfo = new ProcessStartInfo(
RoleEnvironment.GetLocalResource("Executables").RootPath + #"\node.exe",
string.Format("server.js {0}",
RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpIn"].IPEndpoint.Port))
{
UseShellExecute = false,
WorkingDirectory = RoleEnvironment.GetLocalResource("Executables").RootPath
}
};
but I can't currently find a full blog post from him about this
If you like node, look at Nancy for .NET
http://elegantcode.com/2010/11/28/introducing-nancy-a-lightweight-web-framework-inspired-by-sinatra/
As per this episode of Cloud Cover and the Node.js blog it would appear that Node.js is officially coming to Azure (and probably Windows in general).
I wrote a series of blog posts about running node.js on Windows Azure a few months ago (http://bit.ly/gxHawS). However I would offer a similar caveat that while it's theoretically possible, I'm not sure I would recommend it (at this point)...

Read Installed Device Driver Details (version, install date, path etc), on Win system

Can anyone help please in this regard ?
What API's can be used from win32 to get installed device drivers details like
version, installation date, path where installed ?
Regards,
Kedar
The best way is WMI, .NET supports it well with the System.Management namespace. You'll want to use the Win32_SystemDriver WMI class. I copied and pasted this code from WMICodeCreator, a great tool to experiment and auto-generate the code you need:
using System;
using System.Management; // Project + Add Reference required
public class MyWMIQuery {
public static void Main() {
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_SystemDriver");
foreach (ManagementObject queryObj in searcher.Get()) {
Console.WriteLine("Driver caption: {0}", queryObj["Caption"]);
}
Console.ReadLine();
}
}
Check out the links I left in this post, Win32_SystemDriver has many other properties beyond "Caption".
You need to consult the Setup API function for driver information.
I recently did something similar (Win32 via .NET). Here are some links that helped me:
http://www.codeproject.com/KB/system/SimpleSetup.aspx
http://www.pinvoke.net/default.aspx/setupapi/SetupDiGetDeviceRegistryProperty.html
http://www.codeguru.com/forum/showthread.php?t=360567