路易莎·克劳馥
9月 03, 2024 05:37
AssemblyAI 发布了 C# .NET SDK,使开发人员能够使用 LeMUR 转录和分析音频,并应用 LLM。
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 还支持使用 Streaming Speech-to-Text 进行实时音频转录。此功能对于需要立即处理音频数据的应用程序特别有用。
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();
// Pseudocode for getting audio from a microphone for example
GetAudio(async (chunk) => await transcriber.SendAudioAsync(chunk));
await transcriber.CloseAsync();
将 LeMUR 用于 LLM 应用程序
SDK 与 LeMUR 集成,允许开发人员基于语音数据构建大型语言模型 (LLM) 应用程序。下面是一个示例:
var lemurTaskParams = new LemurTaskParams
{
Prompt = "Provide a brief summary of the transcript.",
TranscriptIds = (transcript.Id),
FinalModel = LemurModel.AnthropicClaude3_5_Sonnet
};
var response = await client.Lemur.TaskAsync(lemurTaskParams);
Console.WriteLine(response.Response);
Audio Intelligence 模型
此外,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 博客。
图片来源: Shutterstock