AssemblyAI 发布针对高级音频转录和分析的C# .NET SDK

realtime news  Sep 03, 2024 12:48  UTC 04:48

1 Min Read

AssemblyAI 宣布发布其新的 C# .NET SDK,旨在方便使用 .NET 语言(如 C#、VB.NET 和 F#)的开发者进行音频转录和分析。根据AssemblyAI,该 SDK 旨在简化使用 AssemblyAI 的高级语音 AI 模型的过程。

主要功能和目标

该 SDK 的开发具有几个主要目标:

  • 使用惯用的 C# 为所有 AssemblyAI 模型和功能提供直观的接口。
  • 确保与多个框架的兼容性,包括 .NET 6.0、.NET Framework 4.6.2 和 .NET Standard 2.0 及以上版本。
  • 尽量减少依赖关系,以防止版本冲突和需要绑定重定向。

音频文件转录

该 SDK 的主要功能之一是音频转录。开发者可以异步或实时转录音频文件。以下是如何转录音频文件的示例:

using AssemblyAI;
using AssemblyAI.Transcripts;

var client = new AssemblyAIClient("YOUR_API_KEY");

var transcript = await client.Transcripts.TranscribeAsync(new TranscriptParams
{
    AudioUrl = "https://storage.googleapis.com/aai-docs-samples/nbc.mp3"
});

transcript.EnsureStatusCompleted();

Console.WriteLine(transcript.Text);

对于本地文件,可以使用类似的代码进行转录。

await using var stream = new FileStream("./nbc.mp3", FileMode.Open);
var transcript = await client.Transcripts.TranscribeAsync(
    stream,
    new TranscriptOptionalParams
    {
        LanguageCode = TranscriptLanguageCode.EnUs
    }
);

transcript.EnsureStatusCompleted();

Console.WriteLine(transcript.Text);

实时音频转录

该 SDK 还支持使用流式语音到文本进行实时音频转录。这一功能对于需要即时处理音频数据的应用程序特别有用。

using AssemblyAI.Realtime;

await using var transcriber = new RealtimeTranscriber(new RealtimeTranscriberOptions
{
    ApiKey = "YOUR_API_KEY",
    SampleRate = 16_000
});

transcriber.PartialTranscriptReceived.Subscribe(transcript =>
{
    Console.WriteLine($"Partial: {transcript.Text}");
});
transcriber.FinalTranscriptReceived.Subscribe(transcript =>
{
    Console.WriteLine($"Final: {transcript.Text}");
});

await transcriber.ConnectAsync();

// 以下为从麦克风获取音频的伪代码示例
GetAudio(async (chunk) => await transcriber.SendAudioAsync(chunk));

await transcriber.CloseAsync();

利用 LeMUR 进行 LLM 应用

该 SDK 与 LeMUR 集成,允许开发者在语音数据上构建大型语言模型(LLM)应用。以下是一个示例:

var lemurTaskParams = new LemurTaskParams
{
    Prompt = "提供转录的简要总结。",
    TranscriptIds = [transcript.Id],
    FinalModel = LemurModel.AnthropicClaude3_5_Sonnet
};

var response = await client.Lemur.TaskAsync(lemurTaskParams);

Console.WriteLine(response.Response);

音频智能模型

此外,该 SDK 提供对音频智能模型的内置支持,可实现情感分析和其他高级功能。

var transcript = await client.Transcripts.TranscribeAsync(new TranscriptParams
{
    AudioUrl = "https://storage.googleapis.com/aai-docs-samples/nbc.mp3",
    SentimentAnalysis = true
});

foreach (var result in transcript.SentimentAnalysisResults!)
{
    Console.WriteLine(result.Text);
    Console.WriteLine(result.Sentiment); // POSITIVE, NEUTRAL, or NEGATIVE
    Console.WriteLine(result.Confidence);
    Console.WriteLine($"Timestamp: {result.Start} - {result.End}");
}

更多信息请访问AssemblyAI 官方博客



Read More