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

Распознавание музыки на c#

Nidser Знаток (250), открыт 2 недели назад
Здравствуйте! какую библиотеку можно использовать в Windows Form для создания распознавания музыки? Например, в NuGet. И, возможно, знаете, где можно найти примерный код, чтобы написать или хотя бы информацию о том, как писать, какие команды и строки кода можно использовать?
2 ответа
Татьяна Просветленный (28804) 2 недели назад
Для создания приложения на Windows Forms для распознавания музыки на C#, вы можете использовать библиотеку NAudio в сочетании с API для распознавания музыки, например, Audd.io или ShazamKit. Вот как вы можете начать:

Шаг 1: Установите библиотеку NAudio
Откройте ваш проект в Visual Studio.
Перейдите в Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution.
В поле поиска введите NAudio и установите пакет.
Шаг 2: Зарегистрируйтесь в Audd.io или ShazamKit для получения API ключа
Перейдите на Audd.io и зарегистрируйтесь для получения API ключа.
Ознакомьтесь с документацией API для использования методов распознавания музыки.
Шаг 3: Напишите код для записи аудио и отправки его на распознавание
код для записи аудио и отправки его на распознавание с использованием Audd.io :
 using System; 
using System.IO;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using NAudio.Wave;

namespace MusicRecognitionApp
{
public partial class MainForm : Form
{
private WaveInEvent waveIn;
private MemoryStream memoryStream;

public MainForm()
{
InitializeComponent();
waveIn = new WaveInEvent();
waveIn.WaveFormat = new WaveFormat(44100, 1);
waveIn.DataAvailable += OnDataAvailable;
waveIn.RecordingStopped += OnRecordingStopped;
}

private void OnDataAvailable(object sender, WaveInEventArgs e)
{
memoryStream.Write(e.Buffer, 0, e.BytesRecorded);
}

private void OnRecordingStopped(object sender, StoppedEventArgs e)
{
// Save the recorded audio to a file
string fileName = "recordedAudio.wav";
using (var waveFile = new WaveFileWriter(fileName, waveIn.WaveFormat))
{
waveFile.Write(memoryStream.ToArray(), 0, (int)memoryStream.Length);
}

// Send the audio file for recognition
RecognizeMusic(fileName).Wait();
}

private async Task RecognizeMusic(string fileName)
{
string apiKey = "YOUR_AUDD_API_KEY";
string apiUrl = "https://api.audd.io/";
using (var httpClient = new HttpClient())
{
using (var form = new MultipartFormDataContent())
{
form.Add(new StringContent(apiKey), "api_token");
form.Add(new ByteArrayContent(File.ReadAllBytes(fileName)), "file", fileName);
form.Add(new StringContent("identify"), "method");

var response = await httpClient.PostAsync(apiUrl, form);
var jsonResponse = await response.Content.ReadAsStringAsync();

// Display the response
MessageBox.Show(jsonResponse);
}
}
}

private void btnStartRecording_Click(object sender, EventArgs e)
{
memoryStream = new MemoryStream();
waveIn.StartRecording();
}

private void btnStopRecording_Click(object sender, EventArgs e)
{
waveIn.StopRecording();
}
}
}
blackstrip Мыслитель (7679) 2 недели назад
Небось так хочешь))

Muzika.Load("music.mp3");
Muzika.Raspoznavaysya();
System.Out("Eta muzika - "+Muzika.getString());

Все программисты перестали программировать, сразу "какую библиотеку взять?")
Похожие вопросы