Hello

Cela fait un moment que je cherchais un moyen de traduire tu text sur wp.

Après avoir trouver ce post jai décidé de le faire paratager..

System.Speech n'est pas inclus dans l'API Silverlight WP7.

Cependant, vous pouvez utiliser un service en dehors du téléphone pour être en mesure d'utiliser la reconnaissance vocale.

"Text to Speek" peut être fait en utilisant les service de l'API Bing Translation de Microsoft , comme le code ci-dessous.
Ce code envoie une chaîne à Bing et obtient un son fichier de retour type byte []. Vous ne pouvez pas jouer directe le fichier (il n'est pas pris en charge) ,vous devez l'enregistrer dans le stockage isolé et le charger ,l'envoyer à un MediaElement-contrôle. Le code requiert un ID bing, quelque chose que vous pouvez obtenir gratuitement à partir de ce site:http://www.microsofttranslator.com/dev/

Pour utiliser la reconnaissance , vous avez besoin de mettre en place un webservice avec accès à l'API et d'envoyer des enregistrements System.Speech recuperé par le micro téléphone (Api microphone) pour le webservice. Jetez un oeil à ce site: http://blogs.claritycon.com/blogs/ke...on-on-wp7.aspx


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
 
string speakUrl = "http://api.microsofttranslator.com/V2/Http.svc/Speak?appId={0}&text={1}&language={2}";
 
 
 
string _appId = "your bing id";
 
 
 
 
 
 
 
 
 
 private void speek(string text)
 
        {
 
            try
 
            {
 
                WebClient client = new WebClient();
 
                client.OpenReadCompleted += ((s, args) =>
 
                {
 
                    if (args.Error == null)
 
                    {
 
                        var sound = args.Result;
 
 
 
 
                        media.Source = null;
 
                        string filename = "twitter";
 
                        using (IsolatedStorageFile userStoreForApplication = IsolatedStorageFile.GetUserStoreForApplication())
 
                        {
 
                            bool fileExists = userStoreForApplication.FileExists(filename);
 
 
 
 
                            if (fileExists)
 
                            {
 
                                userStoreForApplication.DeleteFile(filename);
 
                            }
 
 
 
 
                            var isolatedStorageFileStream = userStoreForApplication.CreateFile(filename);
 
 
 
 
                            using (isolatedStorageFileStream)
 
                            {
 
                                SaveFile(args.Result, isolatedStorageFileStream);
 
 
 
 
                                if (args.Error == null)
 
                                {
 
                                    media.SetSource(isolatedStorageFileStream);
 
                                    media.Play();
 
                                    media.MediaEnded += new RoutedEventHandler(media_MediaEnded);
 
                                }
 
                            }
 
                        }
 
                    }
 
                });
 
                client.OpenReadAsync(new Uri(string.Format(speakUrl, _appId, text, "en")));
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show(ex.ToString());
 
            }
 
        }
 
 
 
 
 
 
 
 
public static void SaveFile(Stream input, Stream output)
 
        {
 
            try
 
            {
 
                byte[] buffer = new byte[32768];
 
                while (true)
 
                {
 
                    int read = input.Read(buffer, 0, buffer.Length);
 
                    if (read <= 0)
 
                    {
 
                        return;
 
                    }
 
                    output.Write(buffer, 0, read);
 
                }
 
            }
 
            catch (Exception ex)
 
            {
 
                MessageBox.Show(ex.ToString());
 
            }
 
        }
Lien trouvé sur ce forum : http://social.msdn.microsoft.com/For...-ee08a39da578/

Je n'ai personnelement jamais tester cette pratique ..Mais j'en serais interessé si quelqun peut apporter un retour de test ?!
Go faire une appli "Siri" on windows phone ^^