Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15

TTS (Прочитанный текст записать в аудио файл)

19.04.2011, 23:03. Показов 5132. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плииииззззз. Никак не могу заставить свою прогу записывать текст, который она читает с помощью tts, в аудио файл. Работаю в Visual Studio 2008.( vb.net)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.04.2011, 23:03
Ответы с готовыми решениями:

Записать в файл текст из TextBox
привет ребят, помогите простенькую программку написать, есть форма есть один текстбох и есть одна кнопка, нужно чтобы при нажатии кнопки...

Объединить построчно текст из трех RTB и записать в файл
Всем доброго здоровичка!!! Такая проблемка: На форме 3 RTB. Необходимо в файл записать из этих РТБ построчно, т.е. 1-я строка 1 РТБ,...

[FFmpeg] Как записать в файл только что прочитанный AVPacket?
Добрый день! Как сделать, чтобы пакеты записывались в новый контейнер без перекодирования видео? У меня есть проект транскодера,...

25
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.04.2011, 23:07
hot_chik, а как ты пытаешься ее заставить записывать текст, полученный с помощью tts?
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
19.04.2011, 23:15  [ТС]
Чесно говоря, пока ничего есчё не получилось. моя программа читает текст написанный в текстбоксе.
Мне нужно чтобы это записывалось в аудио файл. я пыталась это сделать с помощью этого кода

Try

Dim sfd As New SaveFileDialog
sfd.Filter = "All files (*.*)|*.*|wav files (*.wav)|*.wav"
sfd.Title = "Save to a wave file"
sfd.FilterIndex = 2
sfd.RestoreDirectory = True
Catch

MessageBox.Show("There is some error in converting to Wav file.")

End Try


Но увы нифига не получаеться.....
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.04.2011, 23:18
А tts-движок какой применяешь - Microsoft Anna?
Вообще что ты используешь для tts? - System.Speech или SAPI?
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
19.04.2011, 23:25  [ТС]
Да именно этот, пыталась другие загрузить, но и эта попытка была безуспешной...

Добавлено через 3 минуты
Цитата Сообщение от Eugene22 Посмотреть сообщение
А tts-движок какой применяешь - Microsoft Anna?
Вообще что ты используешь для tts? - System.Speech или SAPI?

Использую System.Speech

Добавлено через 47 секунд
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click
vox.Rate = RateOfSpeech
vox.Speak(RichTextBox1.Text.ToString(), SpeechVoiceSpeakFlags.SVSFlagsAsync)
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
vox.Voice = vox.GetVoices().Item(ComboBox1.SelectedI ndex)
End Sub

Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
RateOfSpeech = TrackBar1.Value
End Sub

Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
vox.Speak("", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpe ak)
End Sub

Добавлено через 17 секунд
Вот мой код
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.04.2011, 23:30
При создании объекта SpeechSynthesizer указываешь
VB.NET
1
vox.SetOutputToWaveFile("полное имя файла.wav)"
А вообще можно через инет посылать текст на сайт Микрософта или Гугла и получать от них записанные звуковые файлы, а затем их и проигрывать, причем для разных языков, в том числе для русского
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
19.04.2011, 23:42  [ТС]
можеш пожалуста рассказать как для блондинки...... блииииин. стыдно..... не поняла.......
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.04.2011, 23:44
Что именно не понятно?
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
19.04.2011, 23:46  [ТС]
Я не могу создать этот объект SpeechSynthesizer. Программа не расспознает его......
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
19.04.2011, 23:49
ну так vox - это и есть SpeechSynthesizer

вообщем смотрим вот это пример. Там все есть.
2
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
19.04.2011, 23:53  [ТС]
вот что мне выдает.... смотри скин...
Миниатюры
TTS (Прочитанный текст записать в аудио файл)  
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
20.04.2011, 00:12
Как Вы объявляете vox ?

Добавлено через 3 минуты
VB.NET
1
Dim vox As New SpeechSynthesizer()
так?
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
20.04.2011, 00:17  [ТС]
VB.NET
1
Public WithEvents vox As New SpVoice
вот так

Добавлено через 48 секунд
я объявляю его в модуле
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
20.04.2011, 00:25
Попробуйте его объявить как я показывал.
Ps. Зачем в модуль то пихать?

Добавлено через 1 минуту
И НЕ забудьте
VB.NET
1
2
Imports System.Speech
Imports System.Speech.Synthesis
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
20.04.2011, 00:26  [ТС]
нужно минимизировать код в форме.

Добавлено через 1 минуту
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
' Load the voices combo box
        Dim Token As ISpeechObjectToken
        For Each Token In vox.GetVoices
            ComboBox1.Items.Add(Token.GetDescription())
        Next
        ComboBox1.SelectedIndex = 0
 
        Dim str As String = Environment.UserName.ToString()
 
 Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click
        vox.Rate = RateOfSpeech
        vox.Speak(RichTextBox1.Text.ToString(), SpeechVoiceSpeakFlags.SVSFlagsAsync)
    End Sub
 
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        vox.Voice = vox.GetVoices().Item(ComboBox1.SelectedIndex)
    End Sub
 
    Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
        RateOfSpeech = TrackBar1.Value
    End Sub
 
    Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
        vox.Speak("", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak)
    End Sub
   
 
    Private Sub LerFiceiroToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LerFiceiroToolStripMenuItem.Click
        Panel1.Show()
        Panel2.Hide()
        Panel3.Hide()
        Panel4.Hide()
    End Sub
 
    Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click
        result = MsgBox("Fechar a Aplicação?", MsgBoxStyle.Question + MsgBoxStyle.YesNo)
 
        If result = MsgBoxResult.Yes Then
            MsgBox("Adeus!", MsgBoxStyle.Information)
            Application.Exit()
 
        ElseIf result = MsgBoxResult.No Then
            cancel = True
        End If
    End Sub
 
    Private Sub InfoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InfoToolStripMenuItem.Click
        Panel1.Hide()
        Panel2.Hide()
        Panel3.Show()
        Panel4.Hide()
    End Sub
 
  
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Panel4.Show()
        Panel1.Hide()
        Panel2.Hide()
        Panel3.Hide()
 
        sSQL = "select * FROM Livros"
        da = New OleDb.OleDbDataAdapter(sSQL, conn)
 
        ds = New DataSet
        da.Fill(ds, "Livros")
        Me.DataGridView1.DataSource = ds.Tables("Livros")
 
    End Sub
 
    Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
        conn.Open()
        da.Update(ds, "Livros")
        Me.DataGridView1.DataSource = ds.Tables("Livros")
        conn.Close()
    End Sub
 
    Private Sub ToolStripButton14_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton14.Click
        vox.Rate = RateOfSpeech
        vox.Speak(RichTextBox1.Text.ToString(), SpeechVoiceSpeakFlags.SVSFlagsAsync)
        vox.SetOutputToWaveFile("livro.wav")
    End Sub
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
20.04.2011, 00:27
VB.NET
1
Public vox As New  SpeechSynthesizer()
В модуле так объявите

Не гарантирую что пройдет, но вы попробуйте в камнем случае в форме в самой где нужно объявите второй раз, мне сейчас трудно сказать, нет студии под рукой, весь код смотрю через телефон
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
20.04.2011, 00:28  [ТС]
это код который относится к этой теме в моей проге. если задекларирую так как вы предлогаете, очень много что не фурычит, так как использует SpVoice
0
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
20.04.2011, 00:31  [ТС]
декларирую так как вы предлогаете и выдает вот эти ошибки см. скин
Миниатюры
TTS (Прочитанный текст записать в аудио файл)  
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
20.04.2011, 00:37
Тогда в самой форме объявите второй раз (можно под другим именем)

Добавлено через 5 минут
Вот код для синтеза речи
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Imports System.Speech
Imports System.Speech.Synthesis
Imports System.IO
 
Namespace SoundsVB
    Public Class speakerForm
        Dim speaker As New SpeechSynthesizer()
 
        Private Sub exitButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles exitButton.Click
            Application.Exit()
 
        End Sub
 
        Private Sub speakButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles speakButton.Click
            speaker.Rate = Convert.ToInt32(speedUpDown.Value)
            speaker.Volume = Convert.ToInt32(volumeUpDown.Value)
            speaker.SpeakAsync(speakTextBox.Text)
 
        End Sub
 
        Private Sub fileButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles fileButton.Click
            SaveFileDialog1.FileName = fileTextBox.Text
            If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                fileTextBox.Text = SaveFileDialog1.FileName
            End If
        End Sub
 
        Private Sub exportButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles exportButton.Click
            If fileTextBox.Text = String.Empty Then
                MessageBox.Show("Please select a location to save the file.", "File not defined", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Else
                Try
                    speaker.Rate = Convert.ToInt32(speedUpDown.Value)
                    speaker.Volume = Convert.ToInt32(volumeUpDown.Value)
                    speaker.SetOutputToWaveFile(fileTextBox.Text)
                    speaker.Speak(speakTextBox.Text)
                    speaker.SetOutputToDefaultAudioDevice()
                    MessageBox.Show("File written successfully.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Catch ex As Exception
                    MessageBox.Show("There was an error writing the file." & vbNewLine & ex.Message, "File error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
            End If
        End Sub
    End Class
 
End Namespace
1
0 / 0 / 0
Регистрация: 19.04.2011
Сообщений: 15
20.04.2011, 01:13  [ТС]
пришлось немного его подмонтировать, файл теперь сохраняет, вот только не аудио а непонятно что, и текст написанный в текстбоксе сохраняеться как титл....

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Imports SpeechLib
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Linq
Imports System.Text
Imports System.Windows.Forms
Imports System.Speech
Imports System.Speech.Synthesis
Imports System.IO
 
 
 
Public Class Form1
    Dim speaker As New SpeechSynthesizer
 
 Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        If RichTextBox1.Text = String.Empty Then
            MessageBox.Show("Please select a location to save the file.", "File not defined", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            Try
                
                speaker.SetOutputToWaveFile(RichTextBox1.Text)
                speaker.Speak(RichTextBox1.Text)
                speaker.SetOutputToDefaultAudioDevice()
                MessageBox.Show("File written successfully.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Catch ex As Exception
                MessageBox.Show("There was an error writing the file." & vbNewLine & ex.Message, "File error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End If
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.04.2011, 01:13
Помогаю со студенческими работами здесь

Записать звук в аудио-файл
Я хочу озвучить текст через переводчик, и записать его в аудио-файл. Первое понятно как сделать а вот второе не нашел способов.

Как записать аудио поток в файл
Добрый день!!! Подскажите как сохранить в файл аудио поток с микрофона? Делал как-то так (см. ниже код), что-то в файл записывается, а вот...

Записать аудио и сохранить в файл при помощи mciSendString()
Подскажите пожалуйста как правильно это записывать (хочу сохранить в аудиофайл) void __fastcall TForm1::Image28Click(TObject *Sender) {...

Помогите с помощью php записать аудио файл в mysql...
Пишу сайт, на котором зарегестрированный пользовать будет иметь возможность добавлять свою музыку, но не знаю как это...

Прочитать текст из файла, затем удалить из текста все буквы вашего имени и записать текст в новый файл
Создать Windows – приложение, в котором производите запись считывание текста из файла, затем удалите из текста все буквы вашего имени и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru