Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Распознавание русской речи на C#!

Вадим Федорук Ученик (85), на голосовании 5 месяцев назад
Подскажите пожалуйста нормальный способ, в консольном приложении прослушивать микрофон, и переводить мою речь в текст. Пытался через microsoft.Speeth, там не поддерживаются языки кроме en-us, мб аддон есть для русского? Ну или другое решение
Голосование за лучший ответ
Татьяна Просветленный (36374) 6 месяцев назад
Для распознавания русской речи в C# можно использовать библиотеку от Google Cloud Speech-to-Text API. Ниже приведен пример консольного приложения, которое прослушивает микрофон и распознает речь на русском языке с использованием Google Cloud Speech-to-Text API.


Для распознавания русской речи в C# можно использовать библиотеку от Google Cloud Speech-to-Text API. Ниже приведен пример консольного приложения, которое прослушивает микрофон и распознает речь на русском языке с использованием Google Cloud Speech-to-Text API.

Шаги:
Создайте проект в Google Cloud Console и включите API Speech-to-Text.
Настройте учетные данные: создайте учетные данные (файл JSON) и скачайте его.
Установите Google.Cloud .Speech.V1 NuGet пакет: откройте ваш проект в Visual Studio и установите пакет через NuGet Package Manager.
 using Google.Cloud.Speech.V1; 
using System;
using System.Threading.Tasks;

class Program
{
static async Task Main(string[] args)
{
// Укажите путь к файлу учетных данных JSON
string credentialPath = "path_to_your_google_cloud_credentials.json";
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", credentialPath);

var speech = SpeechClient.Create();
var streamingCall = speech.StreamingRecognize();

// Task для получения результатов распознавания
var responseReaderTask = Task.Run(async () =>
{
await foreach (var response in streamingCall.GetResponseStream())
{
foreach (var result in response.Results)
{
foreach (var alternative in result.Alternatives)
{
Console.WriteLine($"Transcript: {alternative.Transcript}");
}
}
}
});

// Настройки для распознавания речи
await streamingCall.WriteAsync(new StreamingRecognizeRequest
{
StreamingConfig = new StreamingRecognitionConfig
{
Config = new RecognitionConfig
{
Encoding = RecognitionConfig.Types.AudioEncoding.Linear16,
SampleRateHertz = 16000,
LanguageCode = "ru-RU"
},
InterimResults = true,
}
});

Console.WriteLine("Говорите что-нибудь...");

// Чтение данных с микрофона и отправка их в Google Cloud Speech API
using (var waveIn = new NAudio.Wave.WaveInEvent())
{
waveIn.DeviceNumber = 0;
waveIn.WaveFormat = new NAudio.Wave.WaveFormat(16000, 1);

waveIn.DataAvailable += async (sender, e) =>
{
await streamingCall.WriteAsync(new StreamingRecognizeRequest
{
AudioContent = Google.Protobuf.ByteString.CopyFrom(e.Buffer, 0, e.BytesRecorded)
});
};

waveIn.StartRecording();
Console.WriteLine("Нажмите Enter для остановки...");
Console.ReadLine();
waveIn.StopRecording();
}

await streamingCall.WriteCompleteAsync();
await responseReaderTask;
}
}
Вадим ФедорукУченик (85) 6 месяцев назад
Спасибо, но жаль, что без интернета не сработает. Это так теперь gbt 4о работает? Или это вырезка из какой-то статьи?
Похожие вопросы