-1

我正在寻找文档和资料,但还没有找到解决方案

已安装的 NuGet 包

还生成了 API 密钥

但是找不到正确的文档如何使用 API 密钥

此外,我希望能够上传很长的音频文件

那么上传长达 3 小时的音频文件并获得结果的正确方法是什么?

我有 300 美元的预算,所以应该足够了

这是我到目前为止的代码

此代码当前失败,因为我目前没有正确设置凭据,我不知道如何设置

我还有可以使用的服务帐户文件

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var speech = SpeechClient.Create();           
        
        var config = new RecognitionConfig
        {               
            Encoding = RecognitionConfig.Types.AudioEncoding.Flac,
            SampleRateHertz = 48000,
            LanguageCode = LanguageCodes.English.UnitedStates
        };
        var audio = RecognitionAudio.FromStorageUri("1m.flac");

        var response = speech.Recognize(config, audio);

        foreach (var result in response.Results)
        {
            foreach (var alternative in result.Alternatives)
            {
                Debug.WriteLine(alternative.Transcript);
            }
        }
    }
}

在此处输入图像描述

我不想设置环境变量。我有 API 密钥和服务帐户 json 文件。如何手动设置?

4

2 回答 2

1

如果您不想使用环境变量,则需要使用自定义凭据SpeechClientBuilder创建一个。SpeechClient假设您在某处有一个服务帐户文件,请更改以下内容:

var speech = SpeechClient.Create();

对此:

var speech = new SpeechClientBuilder
{
    CredentialsPath = "/path/to/your/file"
}.Build();

请注意,要执行长时间运行的识别操作,您还应该使用该LongRunningRecognize方法 - 我强烈怀疑您当前的 RPC 将失败,要么明确地因为它试图在一个太大的文件上运行,要么它会超时。

于 2020-10-07T18:18:27.793 回答
0

您需要在创建 Speech 实例之前设置环境变量:

 Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "text-tospeech.json");

第二个参数 (text-tospeech.json) 是您的文件,其中包含由 Google Api 生成的凭据。

于 2020-10-07T18:18:27.130 回答