yusuffyk

Uygulamalarınızı Seslendirin

Uzun bir aradan sonra tekrar merhabalar. Bir süredir buralarda yoktum. dcsadadsaBunun sebebi askerliğimi tecil ettirip yeni bir firmada işe başlamamdı. Okulum bittikten sonra askere gitmeyi düşünüyordum. Ama hayat işte, bazı kararlar aldırdı bana. Ve şu an bir biyomedikal firmasında Ar-Ge mühendisi olarak işe başladım. Gömülü Sistem Yazılımları geliştiriyorum. Bundan sonra da ufak ufak alıştırma tadında paylaşımlarımız olacak. Bu uygulamada basitçe seslendirme mantığından bahsedeceğim. Açık kaynak kodlu bir şekilde paylaşacağım.

 


Bu sektörde yapılan projeler malumunuz üzere ilk seferde çalışmıyor. İnsanların umudu kırılıyor. Pes ediyor, sinirleniyor ve en sonunda çalıştığında evladını kucağını almışçasına seviniyor. Bu duyguyu ben de çok yaşadım. Hele projede görsel bir şeyler olduğunda, ekranı, arayüzü vs. olduğunda mutluluktan havalara uçabiliyorsunuz. Tabi bir zaman sonra da daha büyük projeler yapıp, ekstra özelliklerle süsleyip olduğundan çok daha farklı bir hale bürünmesini isteyebiliyoruz. Burada akla gelen değişik fikirlere ihtiyaç oluyor. Programlarınızı seslendirmek de bunlardan birisi.

Bu uygulama bir online oyun için yazılan metni “.mp3” dosyasına dönüştürüp kaydetmek üzere tasarlanmıştır. Önceden oluşturulmuş bir metin veya kelime .mp3 formatında kaydedilmektedir. Buradaki kaynak koddan yararlanarak uygulamalarınızı sesli bir hale getirebilir veya uygulamalarınızda .mp3 olarak kayıt yapabilirsiniz. Hayal gücünüze bağlı olarak yapacaklarınız sınırlıdır.

Bu uygulama görüntü itibari ile oldukça basit. Bir adet textbox ve üç adet buton bulunmaktadır. Textbox sese dönüştürülecek metnin yazılması için, butonlardan birisi yazıları temizlemek için, bir tanesi kopyaladığınız metni yapıştırmak için ve son buton da metni sese dönüştürmek için. Ayrıca projeye “libmp3lame.32.dll” ve “libmp3lame.64.dll” dosyalarını referans olarak göstermeniz gerekmektedir. Programın çalışır kodları aşağıdadır.

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Speech.Synthesis;
using System.Speech.AudioFormat;
using NAudio.Wave;
using NAudio.Lame;
using System.IO;

namespace MusicProject
{
public partial class txtTextToSpeech : Form
{
public txtTextToSpeech()
{
InitializeComponent();
}
public static void ConvertWavStreamToMp3File(ref MemoryStream ms, string savetofilename)
{
//rewind to beginning of stream
ms.Seek(0, SeekOrigin.Begin);

using (var retMs = new MemoryStream())
using (var rdr = new WaveFileReader(ms))
using (var wtr = new LameMP3FileWriter(savetofilename, rdr.WaveFormat, LAMEPreset.VBR_90))
{
rdr.CopyTo(wtr);
}
}

private void btnSeslendir_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = “MP3 Dosyası(.mp3)|*.mp3”;
if (sfd.ShowDialog() == DialogResult.OK)
{
using (SpeechSynthesizer reader = new SpeechSynthesizer())
{
//set some settings
reader.Volume = 100;
reader.Rate = 0; //medium

//save to memory stream
MemoryStream ms = new MemoryStream();
reader.SetOutputToWaveStream(ms);

//do speaking
reader.Speak(txtText.Text);

//now convert to mp3 using LameEncoder or shell out to audiograbber

ConvertWavStreamToMp3File(ref ms, sfd.FileName);
MessageBox.Show(“Tamamlandı!”);
}
}
}

private void btnTemizle_Click(object sender, EventArgs e)
{
txtText.Clear();
}

private void btnYapistir_Click(object sender, EventArgs e)
{
txtText.Text = Clipboard.GetText();
}

private void txtTextToSpeech_Load(object sender, EventArgs e)
{

}

}
}

Bir Yorum Yazın