2012-03-30 26 views
38

Thiết bị iOS có bộ tổng hợp giọng nói được nhúng cho tính năng VoiceOver của Trợ năng. Có cách nào bạn có thể sử dụng các bộ tổng hợp này theo chương trình để tạo ra âm thanh dựa trên văn bản không?Làm thế nào để sử dụng bộ tổng hợp giọng nói của iOS theo chương trình? (văn bản thành lời nói)

Vấn đề của tôi là: Tôi đang làm việc trên một ứng dụng đơn giản cho trẻ em học màu và thay vì ghi tên màu sắc trong từng ngôn ngữ tôi muốn hỗ trợ và lưu trữ chúng dưới dạng tệp âm thanh, tôi muốn tạo âm thanh khi chạy với một số tính năng chuyển văn bản thành giọng nói.

Cảm ơn

[EDIT: Câu hỏi này đã được hỏi trước iOS7 vì vậy bạn thực sự nên xem xét các câu trả lời đã bỏ phiếu và bỏ qua những cái cũ hơn, trừ khi bạn là một nhà khảo cổ học phần mềm]

Trả lời

61

Bắt đầu từ iOS 7, Apple cung cấp this API .

Xem câu trả lời this.

Objective-C

#import <AVFoundation/AVFoundation.h> 
… 
AVSpeechUtterance *utterance = [AVSpeechUtterance 
          speechUtteranceWithString:@"Hello World!"]; 
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init]; 
[synth speakUtterance:utterance]; 

Swift

import AVFoundation 
… 
let utterance = AVSpeechUtterance(string: "Hello World!") 
let synth = AVSpeechSynthesizer() 
synth.speakUtterance(utterance) 
+0

Chúng tôi có thể lưu giọng nói được thốt ra dưới dạng tệp mp3 không? –

+0

@Onato Làm thế nào tôi có thể dừng trong văn bản thành lời nói.? – ShreePool

4

Thật không may iOS không phơi bày một API công khai cho việc phát biểu lập trình.

Có một private API bạn có thể sử dụng, nếu bạn không gửi App Store.

Nếu không, hãy xem câu trả lời cho this question đối với một số thư viện của bên thứ ba mà bạn có thể sử dụng.

+7

Chúng ta hãy mong muốn người của Apple sẽ đến đây và đọc điều này như một yêu cầu "xin vui lòng-làm-api-công";) –

+1

Apple không chú ý ngay cả đến các yêu cầu được gửi trực tiếp cho họ vì vậy tôi sẽ không hy vọng quá nhiều :( – MrTJ

+7

như một vấn đề của thực tế, Apple đã làm nó. :) –

0

bạn có thể tìm thấy điều này hữu ích Making Your iPhone Application Accessible

Như đã nêu trong “Khả năng tiếp cận iPhone API và công cụ,” điều khiển UIKit tiêu chuẩn và quan điểm sẽ được tự động truy cập. Nếu bạn chỉ sử dụng các điều khiển UIKit tiêu chuẩn, có thể bạn không phải làm nhiều công việc bổ sung để đảm bảo ứng dụng của bạn có thể truy cập được. Trong trường hợp này, bước tiếp theo của bạn là đảm bảo rằng thông tin thuộc tính mặc định được cung cấp bởi các điều khiển này có ý nghĩa trong ứng dụng của bạn. “Cung cấp chính xác và hữu ích Thông tin thuộc tính” để tìm hiểu làm thế nào để làm điều này, xem

11
#import <AVFoundation/AVFoundation.h> 

AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc] init]; 
AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithString:@"Text to say"]; 
[av speakUtterance:utterance]; 
+0

Chúng tôi có thể lưu giọng nói đã được chỉnh sửa thành tệp mp3 không? –

4

Mã này làm việc cho tôi với Swift và iOS 8 trên cả hai Simulator và iPhone 6. Tôi cần thiết để thêm AVFoundation tiêu chuẩn thư viện:

import AVFoundation 

// ... 

func onSayMeSomething() { 
    let utterance = AVSpeechUtterance(string: "Wow! I can speak!") 
    utterance.pitchMultiplier = 1.3 
    utterance.rate = AVSpeechUtteranceMinimumSpeechRate * 1.5 
    let synth = AVSpeechSynthesizer() 
    synth.speakUtterance(utterance) 
} 
Các vấn đề liên quan