2016-10-03 26 views
1

我已經添加了以下project.json文件到我的Azure的功能。項目牛津大學和語音識別 - 「這個組件編譯爲一個不同的處理器」

{ 
    "frameworks": { 
    "net46":{ 
     "dependencies": { 
     "Microsoft.ProjectOxford.SpeechRecognition-x86": "1.0.0.1" 
     } 
    } 
    } 
} 

我用一個簡單的HTTP觸發並在功能如下代碼:

using System.Net; 
using Microsoft.CognitiveServices.SpeechRecognition; 

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { 
log.Info($"C# HTTP trigger function processed a request."); 

     var dataClient = SpeechRecognitionServiceFactory.CreateDataClient(
        SpeechRecognitionMode.LongDictation, 
        "en-US", 
        "my sub key"); 

     var resp = new HttpResponseMessage(HttpStatusCode.OK); 
     return resp; 
} 

在這一點上,我只是想創建DataClient的一個實例。函數編譯得很好,但是當它被執行時,會拋出這個錯誤。

Functions.ProcessReportAudio。 mscorlib:異常已被調用的目標拋出。 mscorlib:無法加載文件或程序集「SpeechClient,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null」。該程序集是針對不同的處理器編譯的。

我曾經嘗試都將NuGet包的x86和x64版本,並得到了同樣的錯誤。

最終,我將處理已上傳到Azure存儲的語音wav文件以獲取聽寫信息,但現在在水中已經死了。

回答

1

傑夫, 我假設你開始與64位(因爲默認的功能應用的配置是86)。

從一個建築改變爲其它後,有您重新啓動功能應用程序?

您能否給一個嘗試作爲初始綁定失敗將可能被緩存,而且由於組件具有相同的名字,可以防止運行時就嘗試加載你的變更後的參考。