如何使用Google Cloud SpeechV1 API进行文本语音转换-需要能够正确有效地处理3个小时以上的音频文件

问题描述

我正在寻找文档和资料,但找不到解决方

已安装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);
            }
        }
    }
}

enter image description here

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

解决方法

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

var speech = SpeechClient.Create();

对此:

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

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

,

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

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

第二个参数(text-tospeech.json)是具有Google Api生成的凭据的文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...