2008-10-17 36 views
5

Tôi có các tệp âm thanh được mã hóa G729. Tôi cần lập trình chuyển đổi chúng sang WAV PCM (16bit 8kHz mono) trong dòng chảy của một công cụ đang làm điều khác nữa. Tôi có một thực thi sẽ làm điều đó cho tôi. Nhưng sinh sản rằng quá trình bên ngoài mỗi khi tôi chuyển đổi là quá nặng về tài nguyên. Đặc biệt là nếu tôi cần nhiều người trong số họ được thực hiện song song. Tìm kiếm một thư viện .NET hoặc mã sẽ cho phép tôi gọi nó trong tiến trình của tôi.Chuyển đổi âm thanh G729 theo định dạng sang WAV PCM

Trả lời

3

Theo liên kết này: The VoiceAge Open G.729 Implementation. Họ cũng cung cấp bộ giải mã G729 và encoder viết bằng C.

+0

Có ai biết bạn có thể tìm thấy bản sao khác của tệp này ở đâu không? Tôi đã nhìn vào trang web trong một vài tháng và liên kết của họ với mã đã bị hỏng. http://www.voiceage.com/media/G729.zip – thaspius

+1

Họ không còn hỗ trợ 'triển khai mở' của họ nữa và đã thông báo với tôi rằng thông tin vẫn còn ở trang web của họ nhưng họ sẽ sớm xóa nó (tôi không biết sớm như thế nào). – nightwatch

0

Theo Wikipedia, G.729 bao gồm một số bằng sáng chế và được cấp phép bởi Sipra, vì vậy bạn có thể sẽ không có nhiều may mắn khi tìm được một trụ sở thích hợp. Trừ khi bạn giải mã một số lượng lớn các tệp rất nhỏ, chi phí sinh sản một quy trình mới không quá lớn so với chi phí thực hiện giải mã, vì vậy tôi sẽ nói sử dụng tệp thực thi bạn có.

Theo như tài nguyên đi, có, quá trình sinh sản đòi hỏi nhiều tài nguyên hơn so với việc sử dụng chuỗi. Điều này không thực sự quan trọng, tuy nhiên, miễn là bạn chỉ sinh ra nhiều quá trình như bạn có lõi trong máy của bạn. Sinh ra nhiều quy trình hơn chỉ lãng phí tài nguyên và không giúp bạn có thêm bất kỳ sự song song nào.

0

Wikipedia nói: "G.729 bao gồm bằng sáng chế từ một số công ty và được cấp phép bởi Sipro (http://www.sipro.com/). Ở một số quốc gia, việc sử dụng G.729 có thể yêu cầu phí giấy phép và/hoặc phí bản quyền."

Nhưng tôi đoán bạn đã xem xét điều đó trong ứng dụng của mình.

Nếu bạn hoàn toàn phải đang trong quá trình, một giải pháp (không nói là tốt nhất) có thể sử dụng LibAVCodec, dưới LGPL.

0

Một thực hiện tham chiếu để sử dụng miễn phí tại địa chỉ: http://www.readytechnology.co.uk/open/ipp-codecs-g729-g723.1/

Lưu ý các vấn đề bằng sáng chế đưa ra bởi những người khác, thực tế là việc thực hiện tham khảo chỉ chạy trên bộ vi xử lý Intel và bạn cần phải trả cho Intel một khoản phí để phân phối mã bằng thư viện IPP của họ như là một phần của sản phẩm thương mại.

0

Nếu bạn có codec ACM trên hệ thống của mình cho G729 thì bạn có thể sử dụng NAudio để chuyển đổi sang PCM. Có một đi bằng cách sử dụng các ứng dụng NAudioDemo bao gồm với NAudio sẽ cho bạn thấy những gì ACM codec có sẵn trên hệ thống của bạn, và giải mã một tập tin bằng cách sử dụng chúng.

0

Điều gì nhắc tôi lần đầu tiên khi nói đến bộ chuyển đổi g729 là chuẩn ITU G729-A. Một cách khá cồng kềnh là chuyển đổi g729 thành pcm trước tiên chúng thêm tiêu đề wav vào trước tệp wav của bạn.That tạo cấu trúc .wav từ .g729.Kể từ khi chính thức ITU g729a (và chính thức không hỗ trợ nhiều chủ đề ...) lib có liên quan đến ý tưởng này, tôi đoán bạn phải xem xét đồng thời và cách lập trình đúng với một loạt các biến tĩnh trong g729a lib. Tôi sử dụng để tham gia vào một dự án nhỏ như OP descibes và tôi về cơ bản chia các tập tin lớn g729 thành g729 khối và giải mã chúng riêng theo một cách lập trình hợp lý đồng ...

0

Nếu bạn chỉ muốn xem codec cần thiết cho sau đó truy cập GSopt và tải xuống phiên bản mới nhất của tôi t (bạn có thể click here để trực tiếp mở trang tải xuống).

Sau khi tải xuống, giải nén tệp mở thư mục và chạy EXE, Bây giờ hãy chọn tệp từ nút duyệt và sau khi tệp được tải tất cả thông tin của nó sẽ được hiển thị.(Nếu tệp không được hiển thị trong số browse dialogue box chỉ cần chọn All Files(*.*) từ browse file dialogue)

Các vấn đề liên quan