Windows için OS X `` say komutu


23

sayKomut belki OS X terminalin en çekici özelliği - bu girdi olarak metni alır ve bilgisayarın hoparlörlerinden bunu konuşur. Windows'da yerleşik veya üçüncü taraf bir program aracılığıyla eşdeğer bir komut satırı aracı var mı?



2
Bu da beni düşündürüyor, belki durumun ortaya çıkması ihtimaline karşı bir komut satırı ses değiştirme uygulaması yazmalıyım.
nhinkle

Yanıtlar:


5

PTTS metni konuşmaya dönüştürmek için çok basit bir Microsoft Windows komut satırı programıdır. Microsoft Text to Speech Engine ve Microsoft Speech SDK kullanıyorsa. Metin-Konuşma Motoru, Windows XP ile birlikte bir ses kalitesi düşük olarak yüklenir. Jampal kurulum programı daha iyi iki ses sesi içerir. (web sitesinden alıntılanmıştır)

Biri, metni yeniden yönlendirerek veya metinde boru oluşturarak programa girerek kullanabilir:

ptts < file.txt
echo Hello there|ptts

@bubu, belgelerin yanlış anlaşılmadığı sürece bu yazılımın yalnızca bir dosyadan konuşma yeteneğine sahip olduğu anlaşılıyor. Aracı bir dosya oluşturmaya gerek olmadan doğrudan komut satırından metin kabul etmenin bir yolu olup olmadığını biliyor musunuz?
nhinkle

2
Nvm, anladım. Programa aktarmalısınız. Örn echo Hello|ptts.exe. Metnin komutun bir argümanı olmasını sağlamanın bir yolunu tercih ederim, ancak bunu yapmanın bir yolu yoksa bu yeterli olacaktır.
nhinkle

@nhinkle evet stdin okur gibi yolu biri boru ile
bubu

3

Bunu yapmak için basit bir Toplu Komut Dosyası oluşturdum. İşte kaynak kodu

@echo off
echo Dim Speak >> %HOMEPATH%\speak.vbs
echo Set Speak=CreateObject("sapi.spvoice") >> %HOMEPATH%\speak.vbs
echo Speak.Speak "%*">> %HOMEPATH%\speak.vbs
%HOMEPATH%\speak.vbs
del %HOMEPATH%\speak.vbs

Bu komut dosyasını "speak.bat" adlı bir dosyaya kaydedin ve PATH değişkeniniz tarafından başvurulan bir dizine taşıyın.

Bu program, girişinizle basit bir vbs oluşturur, daha sonra sistem sesiyle konuşur. Yürütmenin sonunda, komut dosyası başka bir yürütmeye yer açmak için silinir.


Bunun nasıl çalıştığını ve nasıl kullanılacağını açıklamak için lütfen yayınınızı düzenleyebilir misiniz? Ayrıca, dosyayı taşımak için bu çözümün amacı nedir?
Cfinley

@Cfinley: Gönderi düzenlendi
Alessandro Mascolo


1

SDK'da bu kütüphaneye sahipler, burada bazı kişisel çabalarla daha gelişmiş bir yardımcı program yapabilirsiniz.

https://www.microsoft.com/en-us/download/details.aspx?id=27224

Her ne kadar bu sistemde doğal olarak yerleşik olduğu için muhtemelen en uygun yoldur ve powershell ile erişilebilir.

İşlevi ad alanından çağırın ( https://msdn.microsoft.com/en-us/library/gg145021(v=vs.110).aspx )

Add-Type -AssemblyName System.Speech

Nesneyi Örnekleme

 $synth = New-Object -TypeName
 System.Speech.Synthesis.SpeechSynthesizer

İşlevi çağırın ve sözcüklerinizi bağımsız değişken olarak girin.

 $synth.Speak('hey man')

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.