首页 > 解决方案 > .net Core 上的 Microsoft.ProjectOxford.SpeechRecognition-x64

问题描述

我一直在通过 Microsoft.ProjectOxford.SpeechRecognition nuget 包在 c# .net Web 应用程序中使用扬声器识别。由于某些原因,我不得不将 Microsoft Speech 集成到文本中,并且不得不迁移到 .net 核心。现在,当我在 .net 核心上安装 Microsoft.ProjectOxford.SpeechRecognition-x64 包时,它没有更新。有没有办法通过 nuget 包而不是对实际服务的 api 调用使其在 .net 核心上运行?

标签: azurenuget-packagemicrosoft-cognitive

解决方案


Microsoft.ProjectOxford.SpeechRecognition-x64 包的目标是使用 .NetFramework 4.6.1,因此即使可以为单个项目添加多个目标框架,如下所述,它也不会按原样工作

<PropertyGroup>
  <TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
</PropertyGroup>

它不起作用,因为<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />与 4.6.1 不兼容

你可以试试这样的。

将另一个 .NetFramework 库项目添加到同一解决方案,并将该项目引用到主项目。因此,从这个 nuget 包中实际调用语音识别方法的所有功能都将保留在该类库项目中(需要添加代码编写那些帮助程序类)

项目和解决方案文件如下所示

** 基于 .NetStandard 的类库项目的项目文件:**

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.ProjectOxford.SpeechRecognition-x64" Version="1.0.0.7" />
  </ItemGroup>

</Project>

基于 .netCore 项目的主项目的项目文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.9" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>
</Project>

除此之外,您还需要在这个主 .netcore 项目中引用类库项目。右键单击.netcore项目->添加->引用->选择类库项目

注意:到目前为止,我只尝试过,实际上并没有调用任何语音识别 API。我现在试试


推荐阅读