Lệnh OS X `say` cho Windows


22

Các saylệnh có lẽ là tính năng hấp dẫn nhất OS X của thiết bị đầu cuối - phải mất văn bản như là đầu vào và nói nó qua loa của máy tính. Có công cụ dòng lệnh tương đương nào trên Windows, được tích hợp sẵn hoặc thông qua chương trình của bên thứ ba không?



2
Điều đó làm tôi suy nghĩ, có lẽ tôi nên viết một ứng dụng thay đổi âm lượng dòng lệnh, trong trường hợp tình huống sẽ xảy ra.
nhinkle

Câu trả lời:


5

PTTS là một chương trình dòng lệnh Microsoft Windows rất đơn giản để chuyển đổi văn bản thành giọng nói. Nếu sử dụng Microsoft Text to Speech Engine và Microsoft Speech SDK. Text to Speech Engine được cài đặt với Windows XP với một giọng nói có chất lượng kém. Chương trình cài đặt Jampal bao gồm hai giọng nói tốt hơn. (trích dẫn từ trang web)

Người ta có thể sử dụng nó bằng cách nhập văn bản vào chương trình bằng cách chuyển hướng hoặc bằng đường ống trong văn bản:

ptts < file.txt
echo Hello there|ptts

@bubu, có vẻ như phần mềm này chỉ có khả năng nói từ một tệp, trừ khi tôi hiểu sai tài liệu. Bạn có biết nếu có cách nào để nó chấp nhận văn bản trực tiếp từ dòng lệnh mà không cần tạo tệp trung gian không?
nhinkle

2
Nvm, đã tìm ra nó. Bạn phải dẫn nó đến chương trình. Ví dụ echo Hello|ptts.exe. Tôi muốn một cách để văn bản trở thành một đối số của lệnh, nhưng điều này sẽ đủ nếu không có cách nào để làm điều đó.
nhinkle

@nhinkle có khi nó đọc từ stdin một trong những cách là để vượt qua nó
bubu

3

Tôi đã tạo một Batch Script đơn giản để làm việc này. Đây là mã nguồn

@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

Lưu tập lệnh này trong một tệp có tên "speak.bat" và di chuyển nó đến một thư mục được tham chiếu bởi biến PATH của bạn.

Chương trình này tạo ra một vbs đơn giản với đầu vào của bạn, sau đó nói bằng giọng nói hệ thống. Khi kết thúc thực thi, tập lệnh sẽ bị xóa để nhường chỗ cho một lần thực hiện khác.


Bạn có thể vui lòng chỉnh sửa bài viết của mình để giải thích cách thức hoạt động và cách sử dụng nó không? Ngoài ra, mục đích di chuyển các tập tin có giải pháp gì?
Cfinley

@Cfinley: Đã chỉnh sửa bài đăng
Alessandro Mascolo


1

Họ có thư viện này trong SDK, nơi bạn có thể tạo ra một tiện ích nâng cao hơn với một số nỗ lực cá nhân.

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

Mặc dù đây có lẽ là cách thuận tiện nhất vì nó được tích hợp vào hệ thống và có thể truy cập thông qua powershell.

Gọi hàm từ không gian tên ( https://msdn.microsoft.com/en-us/l Library / gg145021 (v = vs.110 ) .aspx )

Add-Type -AssemblyName System.Speech

Khởi tạo đối tượng

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

Gọi hàm và nhập từ của bạn làm đối số.

 $synth.Speak('hey man')
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.