VB 2010 Express Ist dieser Code ein guter Code um den PC Sprechen zu lassen?

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von ClonkAndre.

    VB 2010 Express Ist dieser Code ein guter Code um den PC Sprechen zu lassen?

    Hallo liebe community,

    Ich hätte da mal eine Frage..
    Undzwar würde ich sehr gerne wissen ob der dieser Code:

    VB.NET-Quellcode

    1. Dim synth As New SpeechSynthesizer
    2. synth.Rate = -2
    3. synth.Volume = 100
    4. synth.Speak("Text der gesprochen werden soll")


    Ein guter Code ist um den PC Sprechen zulassen. Warum ich das Frage? Ich ahbe im Internet viele solcher Codes gesehen und die sahen alle unterschliedlich aus, gibt es zwischen den Codes ein Unterschied? Sind die besser oder eher
    schlechter als meiner hier oben?

    Hier sind ein paar solcher Codes:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Dim SAPI
    2. SAPI = CreateObject("SAPI.spvoice")
    3. SAPI.speak("Text")



    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Explicit On
    2. Imports SpeechLib
    3. Public Class Form1
    4. Private V As SpeechLib.SpVoice
    5. Private T As SpeechLib.ISpeechObjectToken
    6. Private Sub Command1_Click()
    7. If List1.SelectedIndex > -1 Then
    8. 'Set voice object to voice name selected in list box
    9. 'The new voice speaks its own name
    10. V.Voice = V.GetVoices().Item(List1.SelectedIndex)
    11. V.Speak(V.Voice.GetDescription)
    12. Else
    13. MsgBox("Please select a voice from the listbox")
    14. End If
    15. End Sub
    16. Private Sub Form_Load()
    17. Dim strVoice As String
    18. V = New SpVoice
    19. 'Get each token in the collection returned by GetVoices
    20. For Each T In V.GetVoices
    21. strVoice = T.GetDescription 'The token's name
    22. List1.Items.Add(strVoice) 'Add to listbox
    23. Next
    24. End Sub
    25. End Class



    Ich weiß zwar nicht ob der obere hier funktioniert aber ich gehe mal davon aus ;)
    Danke im vorraus!

    p.s. gibt es auch eine möglichkeit das das Programm sich weiter bedienen lässt wenn die redet? Das Programm ist bei meinem Code wie eingefroren wenn die redet.. :/
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ClonkAndre“ ()

    »Viele Wege verfügen über Chrom.« => Wie Du es machst, bleibt Dir überlassen. Da dann wohl jeweils andere Bibliotheken eingebunden werden, kann sich natürlich Qualität und Leistungsumfang unterscheiden. Allerdings sollte mit CreateObject so wenig wie möglich gearbeitet werden, da dort ein Object entsteht => beißt sich mit Option Strict On => die dort genutzte Bibliothek sollte auf korrektem Weg eingebunden werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    ClonkAndre schrieb:

    Ein guter Code ist um den PC Sprechen zulassen.
    Super Code hast du gut gemacht.

    wie eingefroren
    Solange eine Methode (z.B. zur Sprachausgabe) Läuft, geht es erst weiter bis die fertig ist. Somit reagiert das Programm auch dann erst wieder. Will man dieses Verhalten nicht, muss man die Verursachende Methode in einen separaten Thread auslagern... Die einfachste Variante ist (meiner Meinung nach) mit async/await/Task zu arbeiten.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Alles klar! Ich hab schonmal geschafft das das Programm sich nicht mehr einfriert :D
    Jetzt bräuchte ich nur noch euren rat! Ist dieser Text to Speech Code gut? Oder doch veraltet? oder vielleicht gibt es ja schon bessere Codes

    Achja immer wenn der Pc reden soll deklariere ich SpeechSynthesizer immer einzelnd. Ist es nicht besser wenn ich: Dim synth As New SpeechSynthesizer
    nach oben über die Load sub packe?
    also wie hier:

    VB.NET-Quellcode

    1. Imports System.Speech
    2. Imports System.Speech.Synthesis
    3. Public Class Sprachassistentin
    4. Dim synth As New SpeechSynthesizer
    5. Private Sub Sprachassistentin_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    6. End Sub
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!
    @mrMo
    Alles klar. Danke für dein Tipp schonmal :D

    @VaporiZed
    Sollte ich in mein Projekt Option Strict On reinbauen?
    Achja: Was ist dieses Option Strict eigentlich?
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    ClonkAndre schrieb:

    Achja: Was ist dieses Option Strict eigentlich?
    Option Strict On sorgt dafür, dass der VB-Editor bereits beim Editieren des Quellcodes Typüberprüfungen vornimmt.
    Teste diesen Code ohne und mit Strict On:

    VB.NET-Quellcode

    1. Dim txt As String = TextBox1.Text
    2. Dim value As Integer = TextBox1.Text
    Du siehst, dass bei Strict On die zweite Zeile unterkringelt ist: "Option Strict On" lässt keine impliziten Konvertierungen von String in Integer zu.
    Option Strict Off versucht, alles mögliche zu konvertieren, in den meisten Fällen funktioniert das sogar, aber nur in den meisten.
    Aber da, wo Du am wenigsten damit rechnest, funktioniert es nicht. Leider hab ich jetzt dafür kein Beispiel zur Hand, bei mir ist Strict immer On.

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    Option Strict ON gehört in jedes VB-Projekt, siehe hier. Es schärft das Auge für Programmierschludereien.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @RodFromGermany
    Oh wow! Habs eben getestet und es ist ja total hilfreich :thumbup:
    Verändert dieses Option Strict eigentlich auch den Designer? Oder ist das wirklich nur um den Quellcode zu überprüfen da?
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!

    ClonkAndre schrieb:

    Verändert dieses Option Strict eigentlich auch den Designer?
    Nein, denn der Design-Code wird halt vom Studio generiert, da kommen solch "Zustände" (Strict Off) nicht vor.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Alles klar!

    Vielen dank erstmal an Euch das Ihr mir so gut geholfen habt :D
    Das wären dann erstmal meine Fragen an euch. Dann kann ich ja jetzt fleißig weiter Programmieren ;)
    Wenn ich dir auf irgendeiner Art und Weise helfen konnte, drück doch bitte den "Hilfreich" Button :thumbup:

    Für VB.NET Entwickler: Option Strict On nicht vergessen!