Microsoft.ProjectOxford.SpeechRecognition-x64 on .net Core
Microsoft.ProjectOxford.SpeechRecognition-x64 on .net Core
我一直在通过 Microsoft.ProjectOxford.SpeechRecognition nuget 包在 c# .net web 应用程序中使用说话人识别。由于某些原因,我不得不将 Microsoft Speech 集成到文本中,并且不得不迁移到 .net 核心。现在,当我在 .net 核心上安装 Microsoft.ProjectOxford.SpeechRecognition-x64 包时,它没有更新。有什么方法可以通过 nuget 包在 .net 核心上实现 运行 而不是 api 调用实际服务?
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 包实际调用语音识别方法的所有功能都将保留在那个 class 库项目中(需要添加代码编写那些助手 class)
项目和解决方案文件如下所示
** Class 基于 .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 项目中引用 class 库项目。右键单击.netcore 项目 -> 添加 -> 引用 -> select class 库项目
注意 : 我只尝试到这里,实际上并没有调用任何语音识别API。我现在就试试
我一直在通过 Microsoft.ProjectOxford.SpeechRecognition nuget 包在 c# .net web 应用程序中使用说话人识别。由于某些原因,我不得不将 Microsoft Speech 集成到文本中,并且不得不迁移到 .net 核心。现在,当我在 .net 核心上安装 Microsoft.ProjectOxford.SpeechRecognition-x64 包时,它没有更新。有什么方法可以通过 nuget 包在 .net 核心上实现 运行 而不是 api 调用实际服务?
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 包实际调用语音识别方法的所有功能都将保留在那个 class 库项目中(需要添加代码编写那些助手 class)
项目和解决方案文件如下所示
** Class 基于 .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 项目中引用 class 库项目。右键单击.netcore 项目 -> 添加 -> 引用 -> select class 库项目
注意 : 我只尝试到这里,实际上并没有调用任何语音识别API。我现在就试试